İçeriğe geç
Cervus Core

Bu siteyi neden statik + MDX olarak kurdum

  • nextjs
  • mdx
  • mimari

Bu siteyi kurarken ilk karar verdiğim şey bir içerik yönetim paneli kullanmamaktı. Kararı nasıl verdiğimi ve neden pişman olmadığımı anlatayım.

Sorduğum soru

Bir blog, bir portfolyo ve ücretsiz dersler barındıran bir site kuracaktım. İlk dürtü genelde "bir CMS kur, yazıları oradan yönet" olur. Ben tam tersini sordum: gerçekten bir veritabanına ihtiyacım var mı, yoksa yalnızca metin düzenlemek için bir arayüze mi alışmışım?

Cevap net çıktı: kullanıcı hesabı yok, ödeme yok, yorum formu bile yok. Tek ihtiyacım, yazdığım metni bir sayfaya dönüştürmekti.

Neden MDX

MDX, düz metne React bileşeni gömebildiğim için Markdown'dan bir adım ötede duruyor. Frontmatter'ı Zod ile doğrulayınca eksik bir alan (kısa bir açıklama, yanlış tarih biçimi) derleme anında hata veriyor — yayına çıkmadan önce yakalanıyor:

export const postFrontmatterSchema = baseFrontmatter.extend({
  tags: z.array(slugSchema).min(1).max(6),
});

Bu, dosya sisteminden okunan düz metnin veritabanındaki bir kayıttan daha kırılgan olmadığı anlamına geliyor; yalnızca farklı bir yerde duruyor.

Ne kazandım

  • Git geçmişi. Bir yazının hangi cümlesinin ne zaman değiştiği git blame ile görülüyor; bir CMS'in revizyon geçmişine güvenmiyorum.
  • Sıfır çalışan sunucu. İçerik derleme sırasında HTML'e dönüşüyor; içerik okuma anında hiçbir veritabanı sorgusu çalışmıyor.
  • Tek doğrulama noktası. Şema tek dosyada durduğu için yeni bir içerik türü eklemek "bir tabloya sütun eklemek" değil, birkaç satırlık bir Zod şeması yazmak.

Ne kaybettim

Dürüst olmak gerekirse: zengin metin editörü rahatlığı. Bir görsel sürükleyip bırakamıyorum; dosya adını ve alt metnini elle yazıyorum. Bu benim için kabul edilebilir bir bedel — ama herkes için olmayabilir.

Bu kararın somut çıktısını görmek isterseniz, bu sitenin kendisini bir vaka çalışması olarak işler sayfasına ekledim.