xmrah.com — Kişisel Web Altyapısı
Bu sitenin kendisi bir projedir. Mimarisi “az eşya, çok huzur” diyen minimalist bir yaklaşımla, bilinçli kararların ürünüdür.
Not: Kaynak kodları, yapılandırma detayları içerdiğinden Codeberg’de public repo olarak açık değildir.
Neden Statik Mimari?
Uzun süre WordPress çalıştırdım. Ancak her güncelleme beraberinde bir uyumsuzluk getiriyordu. Veritabanı bakımı, her hafta çıkan güvenlik açıkları ve eklenti kirliliği… Kendime temel bir soru sordum: Statik metinler sunan bir blog için gerçekten SQL veritabanına ve bir sunucu tarafı diline ihtiyacım var mı?
Cevap hayırdı.
Derleme ve Dağıtım Akışı
Herhangi bir CI/CD boru hattı kullanmıyorum. Tüm içerik yerelde oluşturuluyor ve doğrudan sunucuya bir “mirror” işlemiyle gönderiliyor.
Markdown Yazımı (VSCodium)
↓
pnpm build (Astro 5 SSG)
↓
Pagefind CLI (Arama İndeksi)
↓
deploy.sh (lftp mirror to Hostinger)
- İçerik, Git kontrollü bir
.mddosyası olarak repoya eklenir. deploy.shscripti Astro’yu derler ve Pagefind ile statik arama ağını oluşturur.- Çıkan
dist/klasörülftparacı ile Hostinger sunucusuna gönderilir. Eski dosyalar otomatik silinir.
Mimari Özellikler
- Sıfır Veritabanı Güvenliği: Sitede SQL injection veya XSS riski sıfıra yakındır. Git geçmişi, aynı zamanda içeriğin tam sürüm geçmişidir.
- Dynamic OG Image (Satori): Sosyal medyada paylaşılan her yazının kapak görseli, Vercel’in
satoriveresvgkütüphaneleriyle derleme esnasında Astro endpoint’leri üzerinden dinamik SVG’den PNG’ye dönüştürülerek oluşturulur. - Genişletilmiş Bölümler: Tek bir sistem altında
/blog,/projects,/til(Today I Learned) ve/signalsolmak üzere farklı metin tiplerini barındırır. Localmind veya NixOS projeleri gibi yapılar bu çatı altında listelenir. - Güvenli Linting: Proje
Biomeile korunmaktadır. Prettier ve ESLint karmaşası yerine tek bir pas aracı kullanılarak kod standartları korunur. - Tam SEO Stack: Otomatik sitemap XML’i, RSS feed, detaylı JSON-LD (BlogPosting) schema.org işaretlemeleri. Yüklenen JS sadece tema toggle mekanizmasından ibarettir.