Bu site 2019'dan beri WordPress üzerinde çalışıyordu. Geçen hafta hepsini söküp attım. Artık okuduğunuz her sayfa, kendi yazdığım küçük bir Python üreticisinin çıkardığı düz HTML. Neden mi?
WordPress bana fazla gelmeye başladı
Burada 29 yazı var. Yılda birkaç yazı yazıyorum. Buna karşılık arka planda koca bir sistem dönüyordu: PHP, MySQL, tema, eklentiler, spam koruması, önbellek eklentisi... Ve hepsi bakım istiyordu. WordPress 5.5'te kalmıştım; her güncelleme "acaba site bozulur mu" endişesiyle geliyordu, güncellememek de güvenlik açığı demekti.
Bir gün oturup düşündüm: benim derdim yazıları göstermek. Yazılar değişmiyor. O zaman her ziyaretçi için veritabanına gidip sayfayı yeniden üretmenin ne anlamı var?
Çözüm: kendi statik üreticim
Hazır bir statik site aracına (Hugo, Jekyll, Next.js...) geçebilirdim. Ama bir şeyin nasıl çalıştığını en iyi onu kendim yapınca anlıyorum. Yazıları WordPress'in REST API'sinden çekip JSON'a aldım, üzerine yaklaşık 300 satırlık bir Python betiği yazdım. Betik; yazı sayfalarını, arşivi, RSS'i, sitemap'i ve site içi aramayı tek komutla üretiyor. Eski yazı adresleri de aynen korundu — hiçbir link kırılmadı.
Ne kazandım?
Hız: sayfalar artık veritabanı beklemiyor, sunucu düz dosya veriyor. Güvenlik: hacklenecek bir yönetim paneli, güncellenecek bir eklenti yok. Bakım: sıfır. Özgürlük: tasarımın her satırı elimde; karanlık mod, komut paleti, okuma süresi gibi istediğim her şeyi ekleyebiliyorum.
Bedeli de var elbette: yazı yazmak için bir yönetim paneli yok artık. Yeni yazı, bir JSON dosyasına ekleniyor ve site yeniden üretilip yükleniyor. Kulağa zahmetli geliyor ama yılda birkaç yazı için bu zahmet, koca bir WordPress'i ayakta tutmaktan azmış — bunu da taşınınca öğrendim.
Bu yazı, o yeni düzenin ilk yazısı.