Tüm yazılara dön
·1 dk okuma

Bu siteyi Next.js ile yeniden inşa etmek

Uzun süredir tek sayfalık bir CV sitesiyle idare ediyordum. Projeler çoğaldıkça hem onları anlatacak yer kalmadı hem de site, yaptığım işleri temsil etmemeye başladı. Bu yazı, siteyi sıfırdan kurarken verdiğim kararların kısa bir özeti.

Neden statik export?

Sitem klasik bir paylaşımlı hosting üzerinde duruyor ve orada Node.js çalışmıyor. Next.js'in output: "export" modu tam bu senaryo için: npm run build sonunda ortaya saf HTML, CSS ve JavaScript dosyaları çıkıyor. Çıktıyı FTP ile sunucuya atmak yeterli.

Bunun bedeli de var elbette: sunucu tarafı özellikler, görüntü optimizasyonu ve API route'ları yok. Kişisel bir portföy için bunların hiçbirine ihtiyacım olmadığına karar verdim. İletişim formu yerine doğrudan e-posta bağlantısı kullanıyorum.

İki dilli yapı

Next.js'in yerleşik i18n yönlendirmesi statik export ile çalışmıyor. Çözüm basit: dil, rotanın bir parçası.

app/[locale]/page.tsx        → /tr/ ve /en/
app/[locale]/projects/...    → /tr/projects/ ve /en/projects/

generateStaticParams her iki dil için sayfaları build sırasında üretiyor. Kök adres ise küçük bir statik HTML ile tarayıcı diline göre yönlendirme yapıyor. Arama motorları için her sayfada hreflang alternatifleri tanımlı.

İçerik nerede duruyor?

Proje ve özgeçmiş verileri TypeScript dosyalarında, blog yazıları MDX'te. Bir veritabanı ya da CMS yok; içerik de kodla birlikte versiyonlanıyor. Yeni bir yazı eklemek, bir .mdx dosyası oluşturup build almaktan ibaret.

Bu kurulumun en sevdiğim yanı şu: sitenin tamamı bir Git deposu. Yazı, tasarım ve kod aynı geçmişte ilerliyor.