01
i18n kütüphanesi yerine elle yazılmış katman
İki dil ve sabit sayıda metin için next-intl gibi bir bağımlılık, kazandırdığından fazlasını istiyordu. lib/i18n.ts yolu üretiyor, lib/messages.ts metni tutuyor; tip denetimi eksik anahtarı derlemede yakalıyor.
Bedel: Dil eklendiğinde her mesaj dosyası elle çoğaltılacak.
02
MDX + zod yerine tipli içerik dosyası
Vakalar lib/content.ts içinde TypeScript tipiyle duruyor. Build zamanında doğrulanıyor; çalışma anında ayrıştırma (parse) yok, sayfa statik üretiliyor.
Bedel: İçerik yazmak için kod editörü gerekiyor; panel yok.
03
Server Action + Resend yerine mailto
Form sunucuya hiçbir şey göndermiyor: alanları doldurup posta istemcisini açıyor. API anahtarı yok, sunucuda kişisel veri saklanmıyor, KVKK tarafı sade.
Bedel: Dönüşüm ölçülemiyor; hangi hizmetin kaç kez seçildiğini bilmiyorum.
04
overflow-x: hidden yasak
Taşmayı gizlemek yerine ölçüyorum: 320, 390, 768 ve 1440 px'te scrollWidth karşılaştırılıyor. Taşma varsa yerleşim düzeltiliyor.
Bedel: Her yerleşim değişikliğinde dört ölçüm daha.
05
Bileşende hex yok, sadece @theme token'ı
Renk, yarıçap ve tipografi app/globals.css içindeki token'larda. Bileşen bg-bg, text-ink gibi token sınıfı kullanıyor; tema değişince tek dosya değişiyor.
Bedel: Tailwind'in hazır paletinden gelen alışkanlıklar bırakıldı.
06
Logo şeffaf PNG, SVG değil
Kaynak dosyalar JPEG'ti ve alfa kanalı yoktu. Arka plan flood-fill ile temizlenip 32-bit PNG üretildi. Vektörleştirme henüz yapılmadı.
Bedel: Retina dışı ekranlarda gereksiz ağırlık; SVG olsaydı ölçekten bağımsız olurdu.