Bu siteyi nasıl yaptım: kararlar ve nedenleri
İçindekiler
Kişisel site, bir geliştiricinin kendine açtığı en dürüst alandır: müşteri yok, son tarih yok, bahane yok. Verilen her karar size aittir; iyi olanlar da, sonradan utandıranlar da. Bu yazı, bu siteyi yaparken verdiğim kararların ve nedenlerinin kaydı.
Neden hazır bir servis değil?
Bağlantılarımı toplamak için hazır bir linktree servisi yeterliydi; on dakikada kurulurdu. Buna rağmen kendi sitemi yazdım, çünkü üç şey istiyordum: kendi tasarım dilim, içeriğimin tam sahipliği ve yeni şeyler denemek için bir oyun alanı. Bir de daha sessiz bir neden var: alan adının kendisi bir özgeçmiş. omerozturk.xyz'e giren biri, yalnızca bağlantılarımı değil, nasıl iş çıkardığımı da görüyor.
Teknik tercihler
Site Next.js 15 (App Router), React 19 ve Tailwind CSS ile yazıldı; Vercel'de yayında. Veritabanı yok: bağlantılar, projeler ve bu yazılar TypeScript dosyalarında duruyor ve her şey derleme anında statik HTML'e dönüşüyor. Bu ölçekte bir site için bu, hem en hızlı hem en az bakım isteyen yol. Sunucu maliyeti yok, güvenlik yüzeyi küçük, yedekleme işi git'in kendisi.
İki dil, tek dosya ağacı
Türkçe varsayılan dil, İngilizce ikincil. Yalnızca içerik değil, adresler de yerelleşiyor: /tr/hakkimda ile /en/about aynı sayfa. Bunu klasör yapısını ikiye kopyalamadan çözdüm. Dosya sisteminde tek yol var, bir middleware İngilizce adresi sessizce ona yönlendiriyor. Arama motorlarına da hreflang etiketleriyle iki adresin aynı sayfanın iki dili olduğu söyleniyor; böylece iki dil birbirinin rakibi değil, tamamlayıcısı oluyor.
Ziyaretçinin hiç görmediği katman
Sitenin en çok emek isteyen kısmı, kimsenin fark etmeyeceği kısmıydı: iletişim formunun spam koruması (köken kontrolü, hız limiti ve botların doldurduğu gizli bir tuzak alan), site haritası, her dil için ayrı üretilen sosyal medya görselleri, tarayıcı diline göre yönlendirme. Bunların hiçbiri vitrine çıkmıyor; ama bir sitenin profesyonelliğini vitrin değil, bu katman belirliyor.
Bitti mi? Hayır; kişisel site, doğası gereği bitmeyen bir proje. Ama yayında, hızlı ve her parçası yerli yerinde. Gerisi zamanla.