diff --git a/app/[lang]/(hyperjump)/components/nav.tsx b/app/[lang]/(hyperjump)/components/nav.tsx
index c605760a..050166aa 100644
--- a/app/[lang]/(hyperjump)/components/nav.tsx
+++ b/app/[lang]/(hyperjump)/components/nav.tsx
@@ -15,7 +15,8 @@ import {
mainNavItems0Label,
mainNavItems1Label,
mainNavItems2Label,
- mainNavItems3Label
+ mainNavItems3Label,
+ mainNavItems4Label
} from "@/locales/.generated/server";
import {
type SupportedLanguage,
@@ -31,6 +32,7 @@ const SOLID_NAV_PATHS = [
"/jobs",
"/services",
"/products",
+ "/team",
...data.jobs.map(({ id }) => `/jobs/${id}`)
];
const SOLID_NAV_PATHS_WITH_LOCALE = supportedLanguages.reduce(
@@ -49,6 +51,7 @@ function menu(lang: SupportedLanguage) {
},
{ label: mainNavItems2Label(lang), href: `/${lang}/products` },
{ label: mainNavItems1Label(lang), href: `/${lang}/case-studies` },
+ { label: mainNavItems4Label(lang), href: `/${lang}/team` },
{ label: mainNavItems3Label(lang), href: `/${lang}/#faqs` }
];
}
diff --git a/app/[lang]/(hyperjump)/components/team-card.tsx b/app/[lang]/(hyperjump)/components/team-card.tsx
new file mode 100644
index 00000000..cb511a65
--- /dev/null
+++ b/app/[lang]/(hyperjump)/components/team-card.tsx
@@ -0,0 +1,79 @@
+import Image from "next/image";
+
+interface TeamCardProps {
+ variant?: "featured" | "compact";
+ name: string;
+ role: string;
+ image?: string;
+ description: string;
+ linkedIn?: string;
+}
+
+const FALLBACK_IMAGE = "/images/no-user-image.webp";
+
+const CARD_HEIGHT_FEATURED = 680;
+const CARD_HEIGHT_COMPACT = 640;
+
+export function TeamCard({
+ variant = "compact",
+ name,
+ role,
+ image,
+ description,
+ linkedIn
+}: TeamCardProps) {
+ const isFeatured = variant === "featured";
+ const imageSrc = image && image.trim() !== "" ? image : FALLBACK_IMAGE;
+
+ return (
+
+
+
+
+
+
+
+
+
{name}
+
{role}
+
+ {description}
+
+
+
+ {linkedIn && (
+
+
+
+ )}
+
+
+
+ );
+}
diff --git a/app/[lang]/(hyperjump)/team/data.ts b/app/[lang]/(hyperjump)/team/data.ts
new file mode 100644
index 00000000..b338fc59
--- /dev/null
+++ b/app/[lang]/(hyperjump)/team/data.ts
@@ -0,0 +1,148 @@
+export function getTeams() {
+ return [
+ {
+ name: "Ari Awan",
+ role: "Co-founder & CEO",
+ image: "1763184214507.jpeg",
+ description:
+ "Jack-of-all-trade in technology startups. Experienced in software engineering (20+ years of hands-on web/mobile programming), product management, operation, fundraising, and marketing.",
+ linkedIn: "https://www.linkedin.com/in/ariawan/"
+ },
+ {
+ name: "Ariya Hidayat",
+ role: "Co-founder & CTO",
+ image: "1689492669383.jpeg",
+ description:
+ "Experienced technology leader operating at the intersection of enterprise products and open-source software, with deep hands-on experience across diverse technology stacks.",
+ linkedIn: "https://www.linkedin.com/in/ariyahidayat/"
+ },
+ {
+ name: "Satriyo Pranoto",
+ role: "Head of Product",
+ image: "1517052947097.jpeg",
+ description:
+ "Senior IT and project management professional with 20+ years of experience delivering enterprise and digital products across multiple industries.",
+ linkedIn: "https://www.linkedin.com/in/satriyo-pranoto-2b1935122/"
+ },
+ {
+ name: "Zulfahmi Andri",
+ role: "Principle Software Architect",
+ image: "1610507885667.jpeg",
+ description:
+ "Enterprise software professional with 20+ years of experience, specializing in API-driven systems, mobile applications, and modern cloud architectures.",
+ linkedIn: "https://www.linkedin.com/in/zulfahmi-andri/"
+ },
+ {
+ name: "Ferdi Ramdhon",
+ role: "Head Of Development",
+ image: "1517464706587.jpeg",
+ description:
+ "A full-stack specialist with 10,000+ hours of experience across Java, Python, Go, and React. Expertise spans Android development, SQL/NoSQL databases, and Agile SDLC, focused on delivering scalable software architectures and high-performance RESTful APIs.",
+ linkedIn: "https://id.linkedin.com/in/ferdirn"
+ },
+ {
+ name: "Nico Prananta",
+ role: "Principal Developer",
+ image: "1636610990869.jpeg",
+ description:
+ "Principal software developer with experience leading engineering teams and delivering modern web applications across multiple industries.",
+ linkedIn: "https://www.linkedin.com/in/nico-prananta-884750200/"
+ },
+ {
+ name: "Amri S. Pangestu",
+ role: "Product Manager",
+ image: "1607277533248.jpeg",
+ description:
+ "Product & IT Project Manager with experience in digital agencies, e-grocery, and consulting, driving product growth through strategy, execution, and technology.",
+ linkedIn: "https://www.linkedin.com/in/amripangestu/"
+ },
+ {
+ name: "Hari Cahya Nugraha",
+ role: "Software Engineer",
+ image: "1606819371215.jpeg",
+ description:
+ "Full-stack software engineer with 10+ years of experience building scalable web systems, specializing in backend, infrastructure, and cloud-native architectures.",
+ linkedIn: "https://www.linkedin.com/in/haricnugraha/"
+ },
+ {
+ name: "Muslim Ilmiawan",
+ role: "Software Engineer",
+ image: "1558886084532.jpeg",
+ description:
+ "Backend-focused programmer passionate about system architecture, working mainly with Java, Go, and Node.js.",
+ linkedIn: "https://www.linkedin.com/in/muslimilmiawan/"
+ },
+ {
+ name: "Denny Pradipta",
+ role: "Software Engineer",
+ image: "1758856751506.jpeg",
+ description:
+ "Experienced full-stack web developer with 8+ years of experience working across frontend, backend, and DevOps with modern JavaScript technologies.",
+ linkedIn: "https://www.linkedin.com/in/dennypradipta/"
+ },
+ {
+ name: "Raosan Lillahi",
+ role: "Software Engineer",
+ image: "1679995906768.jpeg",
+ description:
+ "Software engineer with extensive full-stack experience, startup founding background, and strong interest in technology and business.",
+ linkedIn: "https://www.linkedin.com/in/raosanfikri/"
+ },
+ {
+ name: "Suyono",
+ role: "Senior Software Engineer",
+ image: "1516414668719.jpeg",
+ description:
+ "Senior software engineer with 13+ years of experience, passionate about open-source, scalable architectures, and building high-quality products.",
+ linkedIn: "https://www.linkedin.com/in/suyono/"
+ },
+ {
+ name: "Kevin Hermawan",
+ role: "Software Engineer",
+ image: "1760315021833.jpeg",
+ description:
+ "Experienced software engineer focused on frontend, system reliability, and AI-driven solutions, with hands-on work in LLMs, RAG, and monitoring tools.",
+ linkedIn: "https://www.linkedin.com/in/khermawan/"
+ },
+ {
+ name: "Budhi Widagdo",
+ role: "Software Engineer",
+ image: "1602615800537.jpeg",
+ description:
+ "Experienced software engineer with a background in open-source development, digital banking platforms, and leading multi-project engineering teams.",
+ linkedIn: "https://www.linkedin.com/in/budhi-widagdo/"
+ },
+ {
+ name: "Sinta Herena",
+ role: "Software Engineer",
+ image: "1765007375648.jpeg",
+ description:
+ "Full-stack JavaScript developer experienced in React, Next.js, and TypeScript, focused on building reliable, user-centric web applications.",
+ linkedIn: "https://www.linkedin.com/in/sinta-herena/"
+ },
+ {
+ name: "Lukman Adisaputro",
+ role: "Software Engineer",
+ image: "1635918474641.jpeg",
+ description:
+ "Software developer with experience across startups and media companies, specializing in Go backend systems and modern web development with React.",
+ linkedIn: "https://www.linkedin.com/in/lukman-adisaputro-4a8969214/"
+ },
+ {
+ name: "M Noor Syam",
+ role: "Software Engineer",
+ image: "1750253962765.jpeg",
+ description:
+ "Software engineer with 10+ years of experience in Android and full-stack web development, delivering MVPs and scalable, production-ready systems.",
+ linkedIn: "https://www.linkedin.com/in/mochamad-noor-syamsu-832617a5/"
+ },
+ {
+ name: "Harianto",
+ role: "Head of Business Development",
+ image: "1699844064993.jpeg",
+ description:
+ "Business development executive driving long-term growth through strategy, partnerships, and commercial execution.",
+ linkedIn: "https://www.linkedin.com/in/h-harianto-7493799b/"
+ }
+ ];
+}
diff --git a/app/[lang]/(hyperjump)/team/page.tsx b/app/[lang]/(hyperjump)/team/page.tsx
new file mode 100644
index 00000000..34678c4b
--- /dev/null
+++ b/app/[lang]/(hyperjump)/team/page.tsx
@@ -0,0 +1,63 @@
+import type { Metadata } from "next";
+import data from "@/data.json";
+import { dynamicOpengraph } from "@/lib/default-metadata";
+import {
+ supportedLanguages,
+ type SupportedLanguage
+} from "@/locales/.generated/types";
+import { TeamCard } from "../components/team-card";
+import { getTeams } from "./data";
+import { mainTeamDesc, mainTeamHeading } from "@/locales/.generated/strings";
+
+export const generateStaticParams = async () => {
+ return supportedLanguages.map((lang) => ({ lang }));
+};
+type TeamsProps = {
+ params: Promise<{ lang: SupportedLanguage }>;
+};
+
+export async function generateMetadata() {
+ const { title, description } = data;
+
+ const meta: Metadata = {
+ title: `Meet Our Team – ${title}`,
+ description: description
+ };
+
+ return dynamicOpengraph(meta);
+}
+
+export default async function TeamSection({ params }: TeamsProps) {
+ const { lang } = await params;
+ const teams = getTeams();
+
+ const featuredTeams = teams.slice(0, 2);
+ const otherTeams = teams.slice(2);
+
+ return (
+
+
+
+
+ {mainTeamHeading(lang)}
+
+
+ {mainTeamDesc(lang)}
+
+
+
+
+ {featuredTeams.map((member, i) => (
+
+ ))}
+
+
+
+ {otherTeams.map((member, i) => (
+
+ ))}
+
+
+
+ );
+}
diff --git a/locales/en/main.json b/locales/en/main.json
index 0a319a6b..98107d82 100644
--- a/locales/en/main.json
+++ b/locales/en/main.json
@@ -18,7 +18,8 @@
"0_label": "Our Services",
"1_label": "Case Studies",
"2_label": "Our Products",
- "3_label": "FAQ"
+ "3_label": "FAQ",
+ "4_label": "Team"
},
"services": {
"heading": "Services",
@@ -58,5 +59,9 @@
"3_answer": "We offer specialized expertise, flexibility, and cost-effective solutions without the overhead of full-time employees. Our team brings years of experience in enterprise IT, ensuring faster implementation and better ROI.",
"learn_more": "Learn more",
"learn_more_chatbot_message": "I want to learn more about"
+ },
+ "team": {
+ "heading": "Meet our team",
+ "desc": "Our team consists of highly skilled professionals dedicated to delivering exceptional results."
}
}
diff --git a/locales/id/main.json b/locales/id/main.json
index 7b591036..82078fb3 100644
--- a/locales/id/main.json
+++ b/locales/id/main.json
@@ -18,7 +18,8 @@
"0_label": "Layanan Kami",
"1_label": "Studi Kasus",
"2_label": "Produk Kami",
- "3_label": "FAQ"
+ "3_label": "FAQ",
+ "4_label": "Tim"
},
"services": {
"heading": "Layanan",
@@ -58,5 +59,9 @@
"3_answer": "Kami menawarkan keahlian khusus, fleksibilitas, dan solusi yang hemat biaya tanpa beban karyawan tetap. Tim kami memiliki pengalaman bertahun-tahun dalam TI enterprise, memastikan implementasi lebih cepat dan ROI yang lebih tinggi.",
"learn_more": "Pelajari lebih lanjut",
"learn_more_chatbot_message": "Saya ingin mempelajari lebih lanjut tentang"
+ },
+ "team": {
+ "heading": "Kenalan dengan tim kami",
+ "desc": "Tim kami terdiri dari para profesional berpengalaman yang siap memberikan hasil terbaik."
}
}
diff --git a/public/images/linkedIn.svg b/public/images/linkedIn.svg
new file mode 100644
index 00000000..040a0916
--- /dev/null
+++ b/public/images/linkedIn.svg
@@ -0,0 +1,3 @@
+
diff --git a/public/images/teams/1516414668719.jpeg b/public/images/teams/1516414668719.jpeg
new file mode 100644
index 00000000..46d4dc81
Binary files /dev/null and b/public/images/teams/1516414668719.jpeg differ
diff --git a/public/images/teams/1517052947097.jpeg b/public/images/teams/1517052947097.jpeg
new file mode 100644
index 00000000..71f47139
Binary files /dev/null and b/public/images/teams/1517052947097.jpeg differ
diff --git a/public/images/teams/1517464706587.jpeg b/public/images/teams/1517464706587.jpeg
new file mode 100644
index 00000000..8baf3ce5
Binary files /dev/null and b/public/images/teams/1517464706587.jpeg differ
diff --git a/public/images/teams/1558886084532.jpeg b/public/images/teams/1558886084532.jpeg
new file mode 100644
index 00000000..47d1a790
Binary files /dev/null and b/public/images/teams/1558886084532.jpeg differ
diff --git a/public/images/teams/1602615800537.jpeg b/public/images/teams/1602615800537.jpeg
new file mode 100644
index 00000000..b2887af0
Binary files /dev/null and b/public/images/teams/1602615800537.jpeg differ
diff --git a/public/images/teams/1606819371215.jpeg b/public/images/teams/1606819371215.jpeg
new file mode 100644
index 00000000..f6bc84f3
Binary files /dev/null and b/public/images/teams/1606819371215.jpeg differ
diff --git a/public/images/teams/1607277533248.jpeg b/public/images/teams/1607277533248.jpeg
new file mode 100644
index 00000000..393507c4
Binary files /dev/null and b/public/images/teams/1607277533248.jpeg differ
diff --git a/public/images/teams/1610507885667.jpeg b/public/images/teams/1610507885667.jpeg
new file mode 100644
index 00000000..294e2c9a
Binary files /dev/null and b/public/images/teams/1610507885667.jpeg differ
diff --git a/public/images/teams/1635918474641.jpeg b/public/images/teams/1635918474641.jpeg
new file mode 100644
index 00000000..8e089899
Binary files /dev/null and b/public/images/teams/1635918474641.jpeg differ
diff --git a/public/images/teams/1636610990869.jpeg b/public/images/teams/1636610990869.jpeg
new file mode 100644
index 00000000..1cd4ae6d
Binary files /dev/null and b/public/images/teams/1636610990869.jpeg differ
diff --git a/public/images/teams/1679995906768.jpeg b/public/images/teams/1679995906768.jpeg
new file mode 100644
index 00000000..78eb9b8c
Binary files /dev/null and b/public/images/teams/1679995906768.jpeg differ
diff --git a/public/images/teams/1689492669383.jpeg b/public/images/teams/1689492669383.jpeg
new file mode 100644
index 00000000..97fb7879
Binary files /dev/null and b/public/images/teams/1689492669383.jpeg differ
diff --git a/public/images/teams/1699844064993.jpeg b/public/images/teams/1699844064993.jpeg
new file mode 100644
index 00000000..ef528363
Binary files /dev/null and b/public/images/teams/1699844064993.jpeg differ
diff --git a/public/images/teams/1750253962765.jpeg b/public/images/teams/1750253962765.jpeg
new file mode 100644
index 00000000..3ef4adc1
Binary files /dev/null and b/public/images/teams/1750253962765.jpeg differ
diff --git a/public/images/teams/1758856751506.jpeg b/public/images/teams/1758856751506.jpeg
new file mode 100644
index 00000000..eac606eb
Binary files /dev/null and b/public/images/teams/1758856751506.jpeg differ
diff --git a/public/images/teams/1760315021833.jpeg b/public/images/teams/1760315021833.jpeg
new file mode 100644
index 00000000..90d2d3fb
Binary files /dev/null and b/public/images/teams/1760315021833.jpeg differ
diff --git a/public/images/teams/1763184214507.jpeg b/public/images/teams/1763184214507.jpeg
new file mode 100644
index 00000000..b51638d9
Binary files /dev/null and b/public/images/teams/1763184214507.jpeg differ
diff --git a/public/images/teams/1765007375648.jpeg b/public/images/teams/1765007375648.jpeg
new file mode 100644
index 00000000..cf71955f
Binary files /dev/null and b/public/images/teams/1765007375648.jpeg differ
diff --git a/public/images/teams/no-user-image.webp b/public/images/teams/no-user-image.webp
new file mode 100644
index 00000000..66a9ae1c
Binary files /dev/null and b/public/images/teams/no-user-image.webp differ