KeystoneJS ile Hızlı ve Basit CMS Siteleri Oluşturun
KeystoneJS açık kaynaklı, Node.js tabanlı CMS ve web uygulamaları geliştirmek için kullanılan basit ve hızlı bir platformdur. Sadece MongoDB veritabanı ile çalışır. CMS tarafında kullanması basit ve yönetirken müşteri ihtiyaçlarının bir çoğunu karşıladığı için, son günlerde oldukça fazla ilgi görmektedir.
KeystoneJS’in neler yapabildiğini, ne gibi olumlu ve olumsuz yönlerinin olduğunu bu yazıda sizlere aktarmaya çalışacağım.
Öncelikle KeynoteJS’i kullanmak için çok teknik biri olmanıza gerek yoktur. WordPress.com’dan bir blog açmak ve yönetmek kadar kolay bir kullanımı olduğunu söyleyebiliriz.
Kurulumu çok kolaydır. Hızlı bir başlangıç yapmak isterseniz Yeoman ile tek bir komutla kurmanız mümkündür. Ancak detaylarını keşfetmek ve özelleşmiş kurulumlar yapmak isterseniz, sıfırdan adım adım kurulum da yapabilirsiniz.
Hızlı bir kurulum yapmak için: https://keystonejs.com/getting-started/yo-generator/
Detaylı kurulum ayarları için: https://keystonejs.com/getting-started/setting-up/part-1/
Diğer hazır CMS’lerin genelde birçok bileşeni beraberinde kurduğunu, gerekli olmayan birçok eklenti ve bileşen ile hem yönetiminin zorlaşmasını hem de performans sorunlarına yol açtığını biliyoruz. KeynoteJS sadece gereksinimlerinize göre bir kurulum yapar. Böylece gerek sadelik, gerekse performans açısından son derece olumlu bir yapıdadır.
Oluşturduğunuz şablonları yönetmek için ihtiyacınız olan her şey KeynoteJS’de mevcuttur. Tablolar, sıralamalar, sorgular, filteler, export işlemleri.. Bu da sizin formlarınızda rutin işlemlerle uğraşmadan asıl işinize odaklanmanızı sağlar(Resim 1).
Resim 1
Bazı üçüncü parti servislerle ve bulut tabanlı servislerle doğrudan entegre edilebilir (Amazon S3, Cloudinary, Mandrill gibi). Amazon S3’te veri saklamak istediğinizi varsayalım, verilerinizi tanımlarken {type: Types.S3File} alan türü olarak eklemek yetecektir.
Otomatik olarak gelen yönetici arayüzünden tüm formlara ulaşabilir, formların içerisindeki modellere ait tipleri ve diğer detayları basit bir Json ile görebilirsiniz. Ayrıca veritabanı modellerini doğrudan ayarlamanız gerekmez, verilerinizi listeleri kullanarak açıklayabilirsiniz. Aşağıdaki Resim 1 ve Resim 2’de örnek kod parçalarını ve ekran görüntüsünü görebilirsiniz.
Resim 2
Resim 3
KeystoneJS kullanımı kolay ve oldukça kullanışlı bir olay(event) yapısına sahiptir. Modellerinizi oluştururken size bazı tetikleme seçenekleri sunar. Örneğin kullanıcı bilgilerini sakladığınız bir modeliniz var, formu doldurduktan sonra, kaydetmeden hemen önce veya sonra bildirim almak istiyorsanız bu yapıyı kullanabilirsiniz. pre-save, post-save gibi seçeneklerle bu gibi ayarları yapmanız mümkündür.
KeynoteJS ile yaygın JavaScript kütüphaneleri ile sorunsuz şekilde kullanabilirsiniz. Örneğin ben bugüne kadar KeynoteJS kullandığım projelerde moment, lodash, asnyc gibi kütüphaneleri sorunsuz şekilde kullandım.
KeynoteJS ile bir model oluştururken ihtiyaç duyduğunuz temel kısıtlama, doğrulama, görünürlük kurallarını kolayca modeldeki alanlara uygulayabilirsiniz (unique, required, noedit, hidden gibi).
Node.js destekli olduğu için Node.js’in sunduğu nimetlerden kolayca faydalanabilirsiniz.
Tüm bunların yanında KeynoteJS’in de bazı olumsuz yönleri ve kısıtlamaları var elbette. KeynoteJS’de şablonları özelleştirememek ilk dikkat çeken olumsuz özellik diyebiliriz. Basitlik ve sadeliğiyle ön plana çıkan bu platformda tasarımın özelleştirilmesi ve değiştirilmesi kısıtlanmıştır. Yine sadece MongoDB ile çalışıyor olması bir dezavantaj gibi görülebilir. Her ne kadar MongoDB’nin performans ve veri yapısıyla kattığı olumlu yönler olsa da, farklı bir veritabanı kullanmak isterseniz tercih şansınız bulunmuyor.
Özetleyecek olursak; KeynoteJS teknik bilgisi az olan kişilerin dahi kolayca kurabileceği, yönetebileceği ve kullanabileceği basit, sade bir CMS yapısı sunmaktadır. Hızlı şekilde içerik yönetim siteleri oluşturmak isterseniz KeynoteJS’i incelemenizi öneririm. Daha ayrıntılı bilgiler için şu kaynağa göz atabilirsiniz: https://keystonejs.com/