Veritabanı olmadan yönetim paneli: HATKO Solar'da sayfa üzerinden düzenleme
HATKO Solar sitesinde içerik JSON dosyalarında duruyor, ekip sayfadaki metne tıklayarak düzenliyor. Bu yaklaşım ne zaman doğru, ne zaman klasik panel daha iyi?

Kurumsal bir site için yönetim paneli denince akla genellikle bir veritabanı, bir giriş ekranı ve uzun formlar gelir. Müşterimiz HATKO Solar için farklı bir yol seçtim: sitenin içeriği veritabanında değil JSON dosyalarında duruyor ve ekip içeriği, sitenin önizlemesinde ilgili metne tıklayarak değiştiriyor. Ben Berke Özyaşar; bu yazıda HATKO Solar panelinin nasıl çalıştığını ve bu yaklaşımın hangi durumlarda doğru seçim olduğunu anlatıyorum.
Proje kısaca
HATKO Solar, HATKO A.Ş.'nin güneş enerjisi markası; Elazığ'daki tesisinde PV junction box ve konnektör üretiyor. Site Türkçe, İngilizce, Çince ve Almanca yayında. Ürün sayfaları, sertifikalar, PDF doküman merkezi, haberler, üretim ve teknoloji sayfaları ve teklif formu var. İçeriğin büyük kısmı sık değil ama düzenli değişiyor: yeni bir sertifika, güncellenen bir broşür, bir haber.
Sayfa üzerinden düzenleme
Klasik bir panelde düzenleyen kişi, bir form alanının sitede nereye düştüğünü tahmin etmek zorunda kalır. HATKO panelinde ise site önizlemesi açılıyor; değiştirilmek istenen metne ya da öğeye tıklanıyor ve doğrudan orada düzenleniyor. Renkler, yazı tipleri ve ana sayfa bölümleri de panelden ayarlanıyor. Ürünler, haberler, sertifikalar, dokümanlar, slaytlar ve referanslar ise tekrar eden içerikler olduğu için ayrı listeler halinde yönetiliyor. Görsel yükleme, form mesajları ve şifre değişikliği de panelin bölümleri arasında.
İçerik neden JSON dosyalarında
Sunucu tarafında PHP, içerik dosyalarını okuyup sayfaları oluşturuyor; arayüzde sade JavaScript çalışıyor. Bu tercihin pratik sonuçları şunlar:
- Site paylaşımlı bir hostingde ek kurulum gerektirmeden çalışıyor; kurulacak, yönetilecek ya da sürümü güncellenecek ayrı bir veritabanı sunucusu yok.
- Yedek almak dosyaları kopyalamak kadar basit.
- İçerik yapısı okunabilir; yeni bir alan eklemek veritabanı şemasını değiştirmeyi gerektirmiyor.
- Kayıt sayısının sınırlı olduğu ürün kataloğu ve sertifika listesi gibi içeriklerde dosya tabanlı depolama yeterince hızlı.
Yayınla ve geri al
Panelde yapılan değişiklikler "Yayınla" denildiğinde tüm ziyaretçilere yansıyor; bir şey yanlış gittiğinde son yayınlanan hâle geri dönülebiliyor. Düzenleme ile yayının ayrı adımlar olması, yarım kalmış bir metnin ziyaretçiye görünmesini önlüyor. Geri alma imkânı ise ekibin panelde çekinmeden değişiklik yapabilmesini sağlıyor.
Dört dil tek panelde
Türkçe, İngilizce, Çince ve Almanca metinler panelin çeviriler bölümünden yönetiliyor ve her sayfa için hreflang etiketleri bulunuyor. Çok dilli sitelerde sık karşılaşılan sorun, bir dilin güncellenip diğerlerinin unutulması. Çevirilerin tek bir bölümden yönetilmesi, hangi metnin hangi dilde eksik kaldığını görmeyi kolaylaştırıyor.
Sertifika kapısı: içerikten talep toplamak
Panel üreticileri bir tedarikçiyi değerlendirirken sertifikalara bakıyor. HATKO sitesinde sertifikalar önizlemede bulanık görünüyor; tam görünüm için ziyaretçiden firma, ad ve e-posta bilgisi isteniyor. Böylece sertifikayı incelemek isteyen ziyaretçi, satış ekibinin dönüş yapabileceği bir iletişim kaydına dönüşüyor. Hangi içeriğin böyle bir formun arkasında duracağı bilinçli bir karar olmalı; her belgeyi kilitlemek ziyaretçiyi yorar.
HATKO Asistan: cevapsız sorular panele düşüyor
Sitede ürün, sertifika ve teklif sorularını anahtar kelime tabanlı bir bilgi bankasıyla yanıtlayan HATKO Asistan adlı bir sohbet penceresi var. Asistan cevaplarını ekibin hazırladığı içerikten veriyor. Yanıtlayamadığı sorular panelde öneri olarak listeleniyor; bu da ekibe ziyaretçilerin gerçekte ne sorduğunu gösteriyor ve bilgi bankasının bu sorularla genişletilmesine imkân veriyor.
Güvenlik temelleri
Veritabanı olmaması güvenliğin daha az önemli olduğu anlamına gelmiyor. HATKO panelinde oturum yönetimi, CSRF token koruması ve giriş deneme sınırı var. Bu tür bir yapıda ayrıca içerik dosyalarının web üzerinden doğrudan erişilemeyecek bir yerde tutulmasına ve yüklenen dosyaların türünün kontrol edilmesine dikkat etmek gerekiyor.
Bu yaklaşımın sınırları
Dosya tabanlı bir panelin bedelleri de var ve bunları baştan bilmek gerekiyor. Aynı anda birden fazla kişi aynı içeriği düzenlerse, dosyaya son yazan diğerinin değişikliğini ezebilir; bu yüzden yazma işlemlerinin sıraya alınması ve küçük ekiplerle kullanılması daha uygun. İçerik binlerce kayda ulaştığında arama, filtreleme ve sayfalama gibi işlemler veritabanında çok daha kolay. Raporlama da öyle: bir veritabanında tek sorguyla alınan bir özet, dosyalarda ayrıca kodlanmayı gerektiriyor. HATKO gibi içeriği yapılandırılmış ve seyrek değişen bir kurumsal sitede ise bu sınırlar belirleyici olmuyor.
Klasik panelle karşılaştırma
Müşterimiz Hekimoğlu Lojistik için ise farklı bir yapı kurdum: PHP ve MySQL üzerinde, istatistik ekranı olan klasik bir yönetim paneli. Haberler TinyMCE editörüyle yazılıyor; SEO alanları, öne çıkarma ve yayında, taslak ya da arşiv durumları var. Belgelerin görüntülenme ve indirme sayıları ile teklif ve iletişim formlarından gelen mesajlar veritabanında tutuluyor. Haber arşivi zamanla büyüyen ve sayaçlar gibi sürekli yazılan verisi olan bir sitede veritabanı doğru tercih.
Hangisi ne zaman
- Veritabanısız, sayfa üzerinden düzenleme: içerik sınırlı ve yapılandırılmışsa, değişiklikler seyrekse, düzenleyecek kişiler teknik değilse ve sitenin basit bir hostingde çalışması isteniyorsa.
- Veritabanı ve klasik panel: haber arşivi gibi sürekli büyüyen içerik varsa, sayfalama, arama ve filtreleme gerekiyorsa, sayaçlar ve form kayıtları gibi sürekli yazılan veri varsa ya da birden fazla kişi aynı anda içerik giriyorsa.
İki yaklaşım da hazır bir CMS kurmadan, siteye özel yazılıyor; fark, verinin nerede durduğunda ve ekibin içerikle nasıl çalıştığında. Firmanızın sitesi için hangisinin uygun olduğunu kurumsal web sitesi geliştirme sürecinin başında birlikte belirleyebiliriz.