Skip to content
Ercan Labs
BU SİTE

Sitenin kendisi de bir vaka

Müşteri işlerinde anlattığım kuralları kendi sitemde de uyguluyorum. Aynı kapılar, aynı ölçüm, aynı dürüstlük.

60+
statik sayfa
2
dil, tek kod tabanı
100
mobil Lighthouse
0.8 s
LCP

Kaynak: next build çıktısı ve lighthouse raporu. Ayrıntı /evidence sayfasında.

Problem

Portfolyo siteleri genelde iki uçta: ya hazır şablon, ya bitmemiş bir tasarım denemesi. İkisi de "bu adam iş teslim edebiliyor mu" sorusunu cevaplamıyor.

Bu site o soruyu cevaplamak için var: kendi kurallarını kendi üstünde uygulayan, ölçümü yayınlanan bir site.

Kararlar ve bedelleri

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.

Bilinen sınırlar

  • İçerik paneli yok: yazı ve vaka eklemek kod değişikliği demek.
  • Form mailto ile çalışıyor; sunucu tarafı doğrulama, spam filtresi ve dönüşüm ölçümü yok.
  • Logo vektör değil; SVG marka seti (favicon, mono, açık zemin) sonraki iş.
  • Analitik yok; hangi sayfanın okunduğunu bilmiyorum. Bu bilinçli bir tercih, eksik değil.
  • Alan adı ve barındırma henüz yayında değil; site şu an yerelde çalışıyor.

Ne öğrendim

Kendi sitesinde kural uygulamak, müşteriye kural anlatmaktan zor. "Lighthouse 100" demek kolay; mobil simülasyonda LCP 3.4 saniyeyken 100 demek mümkün değil. Büyük hero görselini kaldırıp yerine ölçüm paneli koymamın sebebi estetik değildi: göstergeyi geçmek için tasarımı değiştirmek zorunda kaldım.

Yığın

Arşiv →