Çoğu geliştirici sabah uyandığında düşünmez:
“Dünyanın neye ihtiyacı var? Bir CMS daha.”
Fakat… buradayız.
Mevcut CMS’lerin Sorunu (Geliştirici Bakış Açısından)
Yıllar içinde birçok CMS platformu ile çalıştım — WordPress’ten headless yapılarına kadar.
Hepsi çalışıyor… ta ki biraz farklı bir şey yapmak istediğinizde.
O zaman işler karmaşık hale geliyor:
- Eklentilerle boğuşuyorsunuz, özellikler inşa etmek yerine
- Mimarinizi CMS etrafında şekillendirmek zorunda kalıyorsunuz
- İstemediğiniz yılların geçmiş kararlarını miras alıyorsunuz
Bir noktada fark ettim:
Ben ürünler inşa etmiyordum — CMS etrafında çalışıyordum.
“Ya ne olursa?” Sorusu
O yüzden sormaya başladım:
Bir CMS, modern Laravel uygulamalarını inşa ettiğimiz şekilde tasarlansa?
- Miras kısıtları olmadan.
- Herkes için her şey olmaya çalışmadan.
Yalnızca:
- Temiz mimari
- Geliştirici odaklı
- Tasarım gereği genişletilebilir
- Gerçekten çalışması keyifli
Neden Laravel + Filament?
Laravel ekosistemindeyseniz, bu kısım anlam kazanır.
Laravel size:
- Restriktif olmadan yapı sunar
- Temiz bir servis katmanı sağlar
- Birinci sınıf geliştirme deneyimi (DX)
Filament size:
- Kutu içinden güçlü bir yönetim paneli sunar
- Formlar, tablolar, işlemler — zaten çözümlenmiş
- Tutarlı bir UI katmanı
Birlikte, bir CMS’nin ihtiyaç duyduğu şeylerin %80’ini çözüyorlar.
Geriye kalan %20?
İşte burada işler ilginçleşiyor.
Zor Kısımlar (Kimsenin Konuşmadığı)
Bir CMS inşa etmek CRUD ile ilgili değildir.
Abstraksiyonlarla ilgilidir.
1. İçerik Blokları Olarak (Alanlar Değil)
İstediğim şey:
Esnek, bileşen tabanlı içerik blokları
Fakat bu, bazı problemleri de beraberinde getiriyor:
- Onları nasıl depolayacaksınız?
- Onları nasıl sürümlendireceksiniz?
- Onları nasıl temiz bir şekilde render edeceksiniz?
2. Editör Deneyimi vs Geliştirici Kontrolü
Her zaman bir gerginlik vardır:
- Teknik olmayan kullanıcılara esneklik vermek
- Geliştiricileri sağlıklı tutmak
Aşırı esneklik → kaos
Aşırı katı → kullanılamaz
O dengeyi bulmak, düşündüğünüzden daha zor.
3. Eklenti Mimarisi
İstemediğim şey:
“Sadece kod tabanına dahil et.”
İstediğim şey:
Özelliklerin temiz bir şekilde eklenebileceği bir sistem
Bu da demek oluyor ki:
- Keşif
- Kaydetme
- İzolasyon
- Genişletilebilirlik noktaları
Sonuçta, Laravel + Filament ile desteklenen açık kaynak bir CMS olan TallCMS’i inşa ettim.
Mevcut özellikler:
- Blok tabanlı sayfa oluşturucu
- Sayfalar ve gönderiler
- Yayınlama iş akışı (taslak → planlı → yayımlanmış)
- Revizyon geçmişi
- Medya kütüphanesi
- Menü oluşturucu
- Eklenti mimarisi
Hala erken aşamalar. Hala evriliyor.
Beklenmedik Dersler
1. Frameworkler Düşündüğünüzden Daha Önemli
Laravel + Filament kısıtları içerisinde çalışmak aslında işleri daha iyi hale getirdi.
Bu, zorunlu kıldı:
- Tutarlılık
- Yeniden kullanılabilirlik
- Daha az aşırı mühendislik
2. Agentik Kodlama Güçlü, Ama Tehlikeli…
AI destekli geliştirme ile deney yaptım.
Öğrendiklerim:
Yapısızlığa → kaos
Aşırı açık bir planla → büyük hızlanma
Artık her zaman:
- 1. Bir plan oluşturuyorum
- 2. Onu gözden geçiriyorum
- 3. Kontrol altında adım adım uyguluyorum
3. CMS Bir Sistem Problemi
Bu değil:
“Sayfalar oluşturmak.”
Bu:
“Başkalarının istediklerini inşa edebilmeleri için bir sistemi tasarlamak.”
Bu kayma her şeyi değiştirir.
Burası Nereye Gidiyor
Hala keşfediyorum:
- Daha iyi blok kompozisyonu
- AI destekli içerik oluşturma
- Çoklu site mimarisi
- Geliştirici deneyimi iyileştirmeleri
Diğerlerinin Ne Düşündüğünü Merak Ediyorum
Hiç:
- Kendi CMS’nizi inşa ettiniz mi
- Biriyle savaştınız mı
- Ya da mutlu bir şekilde kullanıyor musunuz
Duymak isterim:
CMS’niz hangi konuda gerçekten iyi yapıyor — ya da gerçekten kötü?
Kapanış
Bunu TallCMS adında bir açık kaynak projesi olarak inşa ediyorum.
Her şeyi değiştirmeye çalışmıyorum.
Sadece modern Laravel geliştiricileri için doğru olanı yapmaya çalışıyorum.
Merak ediyorsanız, daha fazla bilgi vermekten mutluluk duyarım.
Kaynak: Orijinal Makale


