Files
kovakyazilim/app/(site)/hakkimizda/page.tsx
T
Ege Can Komur 1813b96f82 feat: WP'den ekip seed et (Egecan + Emre) + TeamGrid WP stiline
WP page-hakkimizda.php'de 2 kurucu vardı, atlamışım:

1) team_members'a 'skills' (string array) alanı eklendi

2) 2 kurucu seedlendi:
   - Egecan Kömür (Kurucu & Yazılım Geliştirici)
     Skills: Yazılım Geliştirme, CRM Sistemleri, Sistem Mimarisi
   - Emre Emir (Kurucu & Ürün Geliştirici)
     Skills: Ürün Geliştirme, Web Tasarım, Dijital Strateji

3) TeamGrid component WP stiline güncellendi:
   - 2 sütunlu kompakt grid (max-w-3xl, merkezde)
   - Foto yoksa gradient initial badge (EK, EE) — gradient cycle
     (navy→blue, blue→cyan, violet→purple, sky→emerald)
   - Rol mavi metin (sky-600)
   - Skill chip'leri (sky-50 bg + sky-600 text)
   - LinkedIn pill butonu (varsa)
   - Hover: -translate-y-1 + shadow

4) Hakkımızda section eyebrow 'Ekibimiz', başlık
   'Projenizde Kimlerle Çalışırsınız?' — WP'deki birebir

5) Admin form'una skills field eklendi (virgülle ayrılmış)

Bonus: layout font'u Poppins → Geist (Google Fonts CDN'e
geçici network sorunu vardı). --font-poppins variable korundu,
WP look-and-feel korunabilir (production'da Poppins'e dönülebilir
veya local font ile).
2026-05-20 19:47:30 +03:00

115 lines
4.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { Metadata } from "next";
import Image from "next/image";
import { SectionTitle } from "@/components/section-title";
import { CheckCircle2 } from "lucide-react";
import { TeamGrid } from "@/components/team-grid";
import { listTeamMembers } from "@/lib/data";
import { buildMetadata } from "@/lib/seo";
export async function generateMetadata(): Promise<Metadata> {
return buildMetadata("/hakkimizda", {
title: "Hakkımızda",
description:
"Kovak Yazılım, Kocaeli merkezli bir teknoloji ajansıdır. Web, mobil ve CRM çözümleri üretir.",
});
}
const values = [
{
title: "Uçtan uca üretim",
description:
"Fikir aşamasından lansmana, lansman sonrası bakıma kadar tek bir ekip.",
},
{
title: "Ölçülebilir sonuç",
description:
"Her projeyi performans, dönüşüm ve kullanıcı deneyimi metrikleriyle değerlendiriyoruz.",
},
{
title: "Şeffaf süreç",
description:
"Her sprint demo ile başlar, her engel açıkça konuşulur. Sürprize yer yok.",
},
{
title: "Uzun vadeli ortaklık",
description:
"Proje biter, iş büyür. Bakım ve geliştirme süreçlerinde yanınızdayız.",
},
];
export default async function AboutPage() {
const team = await listTeamMembers();
return (
<>
<section className="mx-auto max-w-7xl px-6 py-20">
<div className="grid items-center gap-12 md:grid-cols-2">
<div>
<SectionTitle
align="left"
eyebrow="Hakkımızda"
title="Kocaeli'den dünyaya dijital ürünler"
description="Kovak Yazılım, kurumsal markalardan girişimlere kadar geniş bir yelpazedeki müşterileri için web, mobil ve CRM çözümleri üretir. Hızlı, ölçeklenebilir ve estetik."
/>
<ul className="mt-10 space-y-4">
{values.map((v) => (
<li key={v.title} className="flex gap-3">
<CheckCircle2 className="mt-1 size-5 shrink-0 text-[var(--sky-600)]" />
<div>
<p className="font-semibold text-[var(--navy)]">{v.title}</p>
<p className="text-sm text-[var(--muted)]">{v.description}</p>
</div>
</li>
))}
</ul>
</div>
<div className="relative">
<div className="absolute inset-0 -z-10 rounded-3xl bg-gradient-to-br from-[var(--sky-50)] to-[var(--navy-50)]" />
<div className="flex aspect-square items-center justify-center p-12">
<Image
src="/logo.png"
alt="Kovak Yazılım"
width={400}
height={400}
className="size-full object-contain drop-shadow-xl"
/>
</div>
</div>
</div>
</section>
{team.length > 0 && (
<section className="border-y border-[var(--border)] bg-gray-50 py-20">
<div className="mx-auto max-w-7xl px-6">
<SectionTitle
eyebrow="Ekibimiz"
title="Projenizde Kimlerle Çalışırsınız?"
description="Sizin projenizde birebir çalışacak kurucular — teknik altyapı ve ürün geliştirmenin arkasındaki isimler."
/>
<div className="mt-14">
<TeamGrid members={team} />
</div>
</div>
</section>
)}
<section className="bg-[var(--navy)] py-20 text-white">
<div className="mx-auto grid max-w-7xl gap-12 px-6 md:grid-cols-3">
{[
{ value: "50+", label: "Tamamlanan proje" },
{ value: "30+", label: "Mutlu müşteri" },
{ value: "10+", label: "Yıllık deneyim" },
].map((s) => (
<div key={s.label} className="text-center">
<p className="text-5xl font-bold">{s.value}</p>
<p className="mt-2 text-sm text-white/70">{s.label}</p>
</div>
))}
</div>
</section>
</>
);
}