Bu blogu neden WordPress ile değil de Astro ile kurdum
WordPress mi, statik site mi? Bu blogu neden Astro ile kurduğumu güvenlik, hız, içerik sahipliği ve maliyet açısından adım adım anlatıyorum.
Uzun zamandır kendi deneyimlerimi, karşılaştığım sorunları ve çözümlerini yazacağım bir yer istiyordum. Aklıma ilk gelen WordPress oldu: kendi sunucularım ve reseller hosting hizmetim var, yıllardır WordPress’le siteler kurup yönetiyorum — yani hem araç hem de altyapı bana tanıdık. İlk düşündüğüm yol da doğal olarak bu tanıdık olan oldu. Ama oturup “bu blogda benim için gerçekten önemli olan ne?” diye düşününce, cevaplarımın WordPress’in güçlü olduğu yerlerle örtüşmediğini gördüm. Sonunda siteyi sıfırdan Astro ile kurdum.
Bu yazıda o kararın arkasındaki düşünceyi anlatıyorum: ikisini neye göre karşılaştırdım, beni WordPress’ten asıl uzaklaştıran neydi ve Astro pratikte bana ne kazandırdı. Amacım WordPress’i kötülemek değil — aşağıda onun doğru seçim olduğu durumları da yazdım. Sadece benim önceliklerim başka bir araca işaret etti.
WordPress ilk akla gelen, ama benim durumuma uymuyor#
WordPress’e hakkını vereyim: internetteki sitelerin kabaca yarısı onunla çalışıyor ve bu sebepsiz değil. Kod bilmeyen biri panele girip yazı yazabiliyor, binlerce tema ve eklenti var, arkasında devasa bir topluluk duruyor. Amacım “hızlıca bir site açıp içerik girmek” olsaydı, hiç düşünmeden WordPress derdim.
Ama benim durumum farklı. Ben zaten kod yazıyorum. WordPress’in sunduğu asıl değer — teknik bilmeden site yönetebilmek — benim için bir kazanç değil, çünkü o kolaylığa ihtiyacım yok. Karşılığında ise kullanmadığım o kolaylığın bedelini ödüyorum: sürekli çalışan bir veritabanı, her ziyaretçi isteğinde yorumlanan PHP kodu, güvenlik için düzenli güncellenmesi gereken eklentiler.
Bir de şu var: WordPress’te sitenin görünümünü ya da davranışını değiştirmek istediğinde, hazır bir sistemin içine dışarıdan müdahale ediyorsun. Bunu belli yöntemlerle yapabiliyorsun — kancalar (add_filter), alt tema (child theme), şablon hiyerarşisi gibi — ama her seferinde platformun sana izin verdiği sınırların içinde kalmak zorundasın. Ben ise hazır bir sistemi istediğim şekle zorlamak yerine, sitenin kodunu baştan sona kendim yazmak, yani tam olarak istediğim şeyi kurmak istedim.
Beni asıl vazgeçiren: güvenlik#
Bu blog için en çok önemsediğim şey güvenlikti. WordPress dünyanın en yaygın içerik yönetim sistemi (CMS); ama tam da bu yüzden saldırganların en çok hedef aldığı sistem de o. Bu onun bir kusuru değil — bir şey ne kadar yaygınsa, onu kırmaya çalışan da o kadar çok olur. Ama sonuç şu: bir WordPress sitesinde savunman gereken çok sayıda kapı var. Veritabanı, PHP çalışma ortamı, yönetici paneli, ve en zayıf halka olan eklentiler. Güncellemediğin tek bir eklenti bile siteye giriş kapısı olabiliyor.
Statik bir sitede bu kapıların hiçbiri yok. Benim sitem, önceden üretilmiş HTML, CSS ve az miktarda JavaScript dosyasından ibaret. Ziyaretçi geldiğinde çalışan bir sunucu kodu, sorgulanan bir veritabanı, giriş yapılan bir panel yok. Hack’lenecek bir yüzey olmayınca, korunması gereken bir şey de kalmıyor. Benim için bu tek başına yeterli bir gerekçeydi.
Hız ve SEO#
Statik HTML, olabilecek en hızlı şey: dosya olduğu gibi tarayıcıya gönderiliyor, arada veritabanı sorgusu ya da sayfa üretimi beklemek yok. WordPress ise (önbellek kullanmıyorsan) her istekte veritabanına gidip sayfayı yeniden oluşturuyor.
Bu benim için sadece bir konfor meselesi değil. Bu blogun hedeflerinden biri arama sonuçlarında görünmek. Google’ın sıralama ölçütlerinden biri de sayfa hızı (Core Web Vitals). Statik site bana burada baştan bir avantaj veriyor — hız pazarlık konusu değildi.
İçerik bana ait ve versiyon kontrolünde#
WordPress’te yazıların veritabanında durur. Bu, içeriğin platforma bağlı kalması demek; taşımak, yedeklemek, başka bir sisteme geçirmek ayrı bir uğraş.
Astro’da her yazı düz bir Markdown dosyası. Hepsi bilgisayarımda, git ile sürüm kontrolünde. Bu bana birkaç şey kazandırıyor: her değişikliğin geçmişi duruyor, istediğim editörle yazabiliyorum, ve içerik hiçbir platforma kilitli değil. Bu blogda uzun vadede yüzlerce, belki binlerce yazı biriktirmeyi planlıyorum — bu arşivin bir veritabanına hapsolmasını değil, elimin altında düz metin olarak durmasını istedim.
Astro’da ne farklı — pratikte#
Astro’da sitenin tamamı zaten benim kodum. Ana sayfayı değiştirmek istiyorsam ilgili dosyayı açıp değiştiriyorum; kancalanacak, override edilecek bir başkasının sistemi yok.
Yazı yazma akışım da bu kadar sade:
# Yeni yazının iki dildeki dosyasını, tarihini, slug'ını hazırlar
npm run new "Başlık"
# Yazıyı yaz, sonra yayınla
git add .
git commit -m "yeni yazı: başlık"
git push
push yaptığım an site otomatik olarak yeniden derlenip yayına giriyor. Arada panel yok, “yayınla” düğmesi yok, veritabanı yok.
Derleme zamanı güvenlik ağı: içerik şeması#
Astro’da en sevdiğim özelliklerden biri bu. Yazıların hangi alanlara sahip olması gerektiğini bir şema olarak tanımlıyorsun:
const posts = defineCollection({
schema: z.object({
title: z.string().min(1),
description: z.string().min(1), // SEO için zorunlu
pubDate: z.coerce.date(),
tags: z.array(z.string()).default([]),
}),
});
Bir yazıda zorunlu bir alanı unutursam ya da tarihi yanlış yazarsam, site daha derlenirken hata veriyor ve bana tam olarak hangi dosyada ne eksik olduğunu söylüyor. Yani hatayı ziyaretçiden önce ben yakalıyorum. WordPress’te aynı hatayı çoğu zaman canlı sitede, iş işten geçtikten sonra fark ederdim.
Maliyet ve bakım#
Statik site, Cloudflare Pages gibi servislerde ücretsiz barınabiliyor. WordPress için ise çalışan bir sunucu, dolayısıyla aylık bir hosting ücreti ve düzenli bakım (güncellemeler, yedekler, güvenlik yamaları) gerekiyor. Tek bir kişisel blog için bu, hem para hem de zaman olarak kalıcı bir yük.
Benim tarafımda deploy sonrası neredeyse hiç bakım yok: güncellenecek eklenti, yamalanacak açık, yedeklenecek veritabanı yok. Enerjimi altyapıyı ayakta tutmaya değil, yazı yazmaya harcamak istedim.
Peki WordPress ne zaman doğru seçim?#
Dürüst olmak gerekirse, pek çok durumda. Kod yazmıyorsan ve teknik detaylarla uğraşmak istemiyorsan; içeriği senin dışında birileri (bir ekip, bir editör) giriyorsa; e-ticaret, üyelik, rezervasyon gibi hazır eklentilerle hızlıca çözülen işlevlere ihtiyacın varsa — WordPress bu işleri gerçekten kolaylaştırır. Onun asıl parladığı yer burasıdır ve bunlar küçümsenecek şeyler değil.
Mesele “hangisi daha iyi” değil, “hangisi senin işine daha uygun”. Benim işim kod yazmak, önceliğim güvenlik ve hız, içeriğim de metin ağırlıklı. Bu üçü bir araya gelince terazi Astro’dan yana ağır bastı.
Bundan sonrası#
Buraya yazılım geliştirirken takıldığım şeyleri ve nasıl çözdüğümü yazacağım. Öncelikle kendime not niyetine — çünkü bir sorunu bir kez çözüp unutmak yerine yazıya dökmek, hem daha iyi anlamamı sağlıyor hem de ileride aynı duvara toslarsam bana yol gösteriyor. Ama aynı sorunu yaşayan başka birinin de işine yararsa, ne güzel.