meta

Bu Site Bir Monorepo, Bir Cookie ve İki Dilden İbaret

· 2 dk okuma · Kaan Demirel · güncellendi 24 Ağu 2026

Bu site bir yazma alışkanlığı olarak başladı, ama bugün onu ayakta tutan şey alışkanlık değil, kurulumun kendisi. Veritabanı yok, CMS yok, yönetim paneli yok. Ne varsa repoda duruyor ve bir yazı yayımlamak bir git commit demek.

Aşağısı, o kurulumun bugün gerçekten neye benzediği.

Burada ne yazıyorum

Ne inşa ettiğimi yazıyorum: local-first ya da self-hosted çalışan araçlar, yapay zekânın sihirli bir katman değil kontrollü bir bileşen olduğu işler, gerçek hayatla temas edince ayakta kalan otomasyonlar.

Bir de işe yaramayan şeyleri yazıyorum. Durdurduğum bir SaaS denemesinden geriye kalan asıl faydalı şey ürün değil, yaptığım hataydı; onu olduğu gibi anlatmak, başarılı bir sonucu anlatmaktan hem daha kolay hem daha dürüst.

hermes-fact-store üzerine söz verdiğim notlar da artık burada: tek bir SQLite dosyasının bir agent’a hafıza olarak neden yettiğini ayrı bir yazıda anlattım.

Sitenin şekli

Repo tek bir Astro projesi değil, bir npm workspace:

  • apps/site, okuduğunuz site
  • apps/showcase, projelerin listelendiği showcase.aethrox.me
  • packages/shell, iki sitenin de paylaştığı başlık, altlık, tasarım değişkenleri ve proje verisi

packages/shell içinde bir şeyi değiştirmek iki siteyi birden değiştiriyor. Sebebi basit: iki ayrı başlık ve iki ayrı tema, bu paket çıkmadan önce birbirinden ayrışmaya başlamıştı bile.

Yazılar apps/site/src/content/blog/ altında duruyor. Görseli olan yazılar kendi klasörünü alıyor, gerisi tek dosya.

Her yazı iki dilde

Yayımlanan bir yazı tek bir dosya değil, iki dosya: .en.md ve .tr.md. İkisini birbirine bağlayan şey dosya adı değil, paylaştıkları slug. Biri eksikse test düşüyor ve site derlenmiyor.

İngilizce metin Türkçenin çevirisi değil. İki metin aynı şeyi iddia ediyor, ama her biri kendi dilinde okunmak üzere yazılıyor; birebir çeviri iki tarafta da kasılıyor.

Yazım kurallarının mekanik kısmını da bir test tutuyor: Türkçe düzyazıda tipografik kesme işareti, hiçbir yerde uzun tire yok, çevrilince anlamını kaybeden terimlerin ev hali var. Cümlenin bir şey söyleyip söylemediğine ise hâlâ ben karar veriyorum.

JavaScript tarafı

Bütün site statik HTML’e derleniyor ve neredeyse hiç JavaScript göndermiyor. “Neredeyse”, çünkü sıfır değil.

Tema ve dil tercihiniz .aethrox.me alan adına yazılan tek bir cookie’de duruyor. İkisi tek yerde durduğu için bu siteden showcase’e geçtiğinizde tercih sizinle beraber geliyor; sayfa da seçtiğiniz temayla açılıyor, önce beyaz yanıp sonra kararmıyor.

Geri kalanı bundan ibaret: bir tema düğmesi, bir dil düğmesi, showcase tarafında bir filtre çubuğu. Sayfayı çalıştıran bir framework yok.

Bundan sonrası

Buraya eklenecek yazılar ağırlıklı olarak Rust ve Python tarafından geliyor: CLI araçları, MCP sunucuları ve her gün kullandığım Linux masaüstü. Kurulum bundan ibaret; gerisi yazmaya kalıyor :)

yazılar