CMS: Content Management System (Taslak v01)

CMS Nedir?

CMS, İngilizce "Content Management System" kelimesinin kısaltılmışıdır ve Türkçe çevirisi ise "içerik yönetim sistemi" olarak kabul edilmiştir. Hazır kaynak kodlara sahip bu sistemler ile birçok farklı konuda ve alanda internet sitesi tasarlayabilir ve yayına alabilirsiniz¹.

CMS'in Avantajları Nelerdir?

CMS'in en temel avantajı, internet sitesi olmayan ve internet sitesi tasarımı yapamayacak kadar yazılım bilgisi bulunmayan kullanıcıların herhangi bir teknik bilgiye sahip olmadan basit ve kolay bir şekilde internet siteleri yayınlamasına yardımcı olmasıdır. CMS, web sitelerinin ve web sitesi içeriklerinin minimum teknik iş yüküyle yaratılmasına ve yönetilmesine yardımcı olur. Böylece, proje veya trafik yöneticisi olarak zaman harcamak yerine daha iyi içerikler oluşturabilirsiniz.

CMS'in diğer avantajları şunlardır:

  • Tema çeşitliliği: İnternet üzerinde çoğu kullanıcısı içerik yönetim sistemi kullandığı için tema sağlayan yazılım firmaları veya yazılımcı kişilerin sayısı oldukça fazladır. Böylece kullanıcılar ücretsiz veya cüzi bir ücret karşılığında beğendikleri bir temayı sitelerinde kullanabilirler.

  • Eklenti çeşitliliği: Tüm içerik yönetim sistemlerinde birtakım site fonksiyonlarının sağlıklı çalışmasını sağlamak amacıyla oluşturulmuş eklentiler mevcuttur. Bu eklentiler sitenin bir hizmeti için özel olarak oluşturulmuştur ve sadece o amaçla kullanılmaktadır. Eklentilerin amacı, site sahibinin herhangi bir yazılım ile uğraşmadan sitesinde yapılmasını istediği işlemleri sağlıklı yapılmasını sağlamaktır.

  • Bulut barındırma: Bazı CMS türleri, web sitesini bulutta barındırarak sunucu kurma ve bakım maliyetlerini ortadan kaldırır. Ayrıca, bulut barındırma sayesinde web sitesinin performansı, güvenliği ve erişilebilirliği artar.

CMS Türleri Nelerdir?

CMS türleri genellikle ön uç ve arka uç olarak ikiye ayrılır. Ön uç, kullanıcının etkileşimde bulunduğu kısımdır. Web siteleri bu kısımda görsel olarak yapılandırılır ve stil kazanır. Arka uç ise, bir web sitesine yeni içerik göndermek için kullanılan uygulamadır.

Bugün kullanılabilen farklı CMS türleri şunlardır:

  • Birleşik CMS: Bir web sitesinin veritabanına bağlanan ve veritabanını değiştiren, içeriği stilize bir ön uca yayınlayan tümüyle erişilebilir arka uç sunar. Birleşik CMS her şey dahil bir çözüm olsa da çalışmak için özel bir web barındırma hizmetine ihtiyaç duyar. Ayrıca, birleşik CMS sürekli kullanım için muhtemelen bir yöneticinin sistemi kurmasını ve yapılandırmasını gerektirir. WordPress birleşik CMS örneği olarak kullanıcılara yüklemeleri, web sitesi açmaları ve sonraki süreçte içerik yayınlamaları için eksiksiz bir paket sunar.

  • SaaS CMS: SaaS CMS de eksiksiz uçtan uca bir çözümdür ama birleşik CMS'in aksine, SaaS CMS bulutta barındırılır. Bu sayede, kullanıcılar web barındırma hizmeti almak zorunda kalmazlar. Ayrıca, SaaS CMS güncellemeleri ve bakımı otomatik olarak yapar. SaaS CMS örneği olarak Wix, Squarespace ve Shopify gibi platformlar kullanıcılara web sitesi oluşturmak için hazır şablonlar ve araçlar sunar.

  • Başsız CMS: Başsız CMS, arka uç ile ön uç arasındaki bağlantıyı kesen bir CMS türüdür. Başsız CMS, içeriği veritabanında depolar ve bir API aracılığıyla farklı platformlara dağıtır. Böylece, kullanıcılar web sitesinin ön ucunu istedikleri gibi tasarlayabilir ve içeriği farklı cihazlara uyumlu hale getirebilirler. Başsız CMS örneği olarak Contentful, Prismic ve Strapi gibi platformlar kullanıcılara içerik oluşturmak ve yönetmek için esnek bir arayüz sunar.

CMS Nasıl Seçilir?

CMS seçerken dikkat edilmesi gereken bazı kriterler şunlardır:

  • İhtiyaçlarınız: Web sitenizin amacını, hedef kitlenizi, büyüklüğünüzü ve bütçenizi belirleyin. Web sitenizin ne tür bir içerik sunacağını, ne kadar sıklıkla güncelleneceğini ve hangi platformlarda görüntüleneceğini düşünün. Bu faktörler, hangi CMS türünün size uygun olduğunu belirlemenize yardımcı olacaktır.

  • Özellikler: Farklı CMS'ler farklı özellikler sunar. Tema, eklenti, SEO, güvenlik, performans, destek gibi özellikleri karşılaştırın. Web sitenizin ihtiyaç duyduğu özellikleri sağlayan bir CMS seçin.

  • Kullanım kolaylığı: Web sitenizi yönetmek için ne kadar teknik bilgiye sahip olduğunuzu değerlendirin. Kod yazmadan veya çok az kod yazarak web sitenizi oluşturmak ve yönetmek istiyorsanız, kullanıcı dostu bir arayüze sahip bir CMS seçin.

  • Ölçeklenebilirlik: Web sitenizin gelecekte büyüyeceğini veya değişeceğini varsayın. Seçtiğiniz CMS'in web sitenizin büyümesine ve gelişmesine uyum sağlayabileceğinden emin olun. Ölçeklenebilir bir CMS, web sitenizin performansını, güvenliğini ve erişilebilirliğini korurken yeni içerikler eklemenize veya yeni platformlara genişlemenize olanak tanır.

TODO: ….

Kendi CMS’inizi Geliştirin?

Kendi CMS’nizi geliştirmeyi tercih etmişseniz barındırma hizmetini, kullanılacak dil ve teknolojilere seçerken birbirlerine bağlantılı olarak seçenekleriniz değişiklik göstermelidir.

Kendi CMS’inizi Geliştirmek İçin Dikkat Etmeniz Gerekenler

Eğer kendi CMS'inizi geliştirmeyi tercih ederseniz, barındırma hizmeti, yazılım dili, veri tabanı, sistem mimarisi ve başsız CMS gibi birbirleriyle bağlantılı olan faktörleri göz önünde bulundurmanız gerekmektedir. Bu faktörlerin seçimi, CMS'nin performansı ve işlevselliği açısından oldukça önemlidir.

Barındırma hizmeti seçiminde, web sitenizin boyutu ve trafik yoğunluğu gibi faktörleri dikkate alarak en uygun seçeneği belirlemelisiniz. Yazılım dili seçimi, CMS'nin işlevselliği ve geliştirme süreci için önemlidir. Veri tabanı seçimi, CMS'nin verileri nasıl depolayacağı ve yöneteceği açısından kritik bir faktördür.

Sistem mimarisi, CMS'nin nasıl çalışacağına ve işlevselliğine etki eder. Başsız CMS, içerik yönetimi ve sunumunu birbirinden ayırarak daha esnek bir yapı oluşturur. Tüm bu faktörleri dikkate alarak, kendi CMS'inizi geliştirmek için doğru seçimleri yapmalısınız.

Bununla birlikte, kendi CMS'inizi geliştirmenin zaman ve kaynak açısından zorlu bir süreç olduğunu unutmamalısınız. Hazır CMS çözümleri de, ihtiyaçlarınıza uygun seçenekler sunabilir. Bu sebeple, bir CMS çözümü seçerken, öncelikle ihtiyaçlarınızı ve gereksinimlerinizi belirlemeli, ardından en uygun çözümü seçmelisiniz.

Tavsiye ve Öneriler

Hosting seçimi maliyet açısından önemli olduğu gibi kullanmak isteyeceğiniz dil yapı ve teknolojilerin seçimini de etkileyecektir. Dedicated, VPS, Konteynır yapıları, Web hosting seçiminize göre maliyetleriniz azalırken kullanılacak teknoloji seçimleriniz de sınırlanmaya başlayacaktır

Web hosting: tercih etmeniz halinde yazılım dili olarak PHP ikinci olarak dotnet tercihleriniz ağır basmalıdır. Bunlar dışında klasik web hosting hizmetleri diğer dil ve teknolojileri desteklemeyecektir. Web hostinglerle birlikte MySQL veri tabanı ve gene ikincil olarak MsSql veri tabanı hizmeti sağlanmaktadır. Kullanılacak iki dil için de mevcut olan en son sürümleri tercih etmek performansınızı artırırken kullanmış olacağınız kaynakları düşürecektir. Fakat satın alacağınız hizmetin destekleyeceği sürümleri göz önüne de almanız gerekmektedir. Örneğin PHP 8.0 desteği ile yazacağınız bir sistem daha düşük versiyonla sunulan bir hosting hizmetinde çalışmayacaktır. Bu yüzden bu tercihi yapmadan önce desteklenen sürüm ve teknolojileri incelemeniz önemlidir.

Headless CMS: bu seçenek sizin için içerikleri depolamanızı yönetmenizi sağlayacak alt yapıyı hazırlayacaktır. İçerikleri doğru şekilde saklamakla ve yönetmekle uğraşmayıp kendi yapınızı bu sisteme entegre ederek sadece arayüz tasarımına odaklanmanız gerekli yerlerde ise sunucu tarafında çok az kodla esnek yapılar oluşturmanızı sağlayacaktır. Ayrıca bu sistemin sağlayacağı api uçlarıyla birden çok sistemi entegre etmeniz mümkün olacaktır. Mobil uygulamanızı ya da sosyal medya bildirimlerinizi kendi sisteminize müdahale etmenize gerek kalmadan bu hazır yapının sağlayacağı uçlar sayesinde rahatlıkla sunabilir bir hale gelirsiniz. PHP veya dotnet destekli bir headless CMS seçmeniz halinde ise bunu basit bir web hosting ile host ederek kendi planladığınız sistem için daha detaylı bir hosting seçiminde bulunabilir bu iki yapıyı birbirinden bağımsız şekilde ilerletebilirsiniz. Yapacağınız diğer yapıları değiştirseniz bile headless cms’de verileriniz kaybolmadan düzenli bir şekilde duracaktır. Frontend ya da yönetim kısmında istediğiniz gibi fikir değişikliklerine gidebilir ve farklı mimari ve yazılım dillerine bu sayede geçiş yapabilirsiniz.

Yazılım dili ve diğer altyapılar: yazılım ekibinizin daha önceden kullandığı dil ve altyapıları tercih etmeniz ilk önceliğiniz olmalı. Eğer ekibiniz bazı esnekliklere uygun ise elinizden geldiği kadar dil ve altyapıları topluluk desteği fazla olanlardan yana kullanmanız sizin avantajınıza olacaktır. PHP, dotnet gibi dillerde ücretsiz örnek kodlar ve takıldığınız yerde soru sorabileceğiniz kişileri daha rahat bulabilirken; Java gibi diller daha kurumsal ve profesyonel çalışmalara açık olduğu için erişebileceğiniz içerik ve destekler maliyet açısından yüksek olacaktır. Hazır frameworkleri seçerken ise bu framework ile gelen temel özelliklerin ihtiyaçlarınızı karşılayıp karşılamadığına ve ihtiyacınızı yeterli seviyede karşılamıyorsa yapının esnek olup olmadığını incelemelisiniz. Wordpress üzerine bir geliştirme yapacaksanız ihtiyaçlarınızı eklentiler olarak geliştirmeniz gerektiğinden bu yapıya hakım olmayan geliştiriciler bu seçimde zorlanacaklardır. Hazır altyapıları tercih etmemeniz halinde ise birçok güvenlik açığı ile uğraşmanız gerekebilir. Önceden aklınıza gelmeyecek birçok ihtiyaç hazır altyapılar ile size hızlı ve esnek parametrelerle sunulmuş halde olacak. Alt yapınızı kendiniz kurmayı planlamış olduğunuzda yapacağınız projede sürekli ihtiyaçlar ve geliştirmelere ihtiyaç duyup projeniz beklenen teslim tarihinin ötesine geçecektir.

TODO:…

Headless CMS

Headless CMS, bir web sitesinin içeriğini ve sunumunu birbirinden ayıran bir içerik yönetim sistemi türüdür. Headless CMS, içeriği bir veri tabanında depolar ve bir API aracılığıyla farklı platformlara dağıtır. Böylece, web sitesinin ön yüzünü istediğiniz gibi tasarlayabilir ve içeriği farklı cihazlara uyumlu hale getirebilirsiniz.

Headless CMS’in avantajları şunlardır:

  • Esneklik: Web sitesinin ön yüzünü istediğiniz teknoloji ve araçlarla geliştirebilirsiniz. Ayrıca, içeriği farklı kanallara ve cihazlara kolayca adapte edebilirsiniz.

  • Performans: Web sitesinin yüklenme hızı ve tepki süresi artar, çünkü sunucu tarafında render edilmesi gereken bir ön yüz katmanı yoktur. Ayrıca, içeriği önbelleğe almak ve optimize etmek için CDN gibi hizmetlerden yararlanabilirsiniz.

  • Güvenlik: Web sitesinin güvenliği artar, çünkü sunucu tarafında çalışan bir ön yüz katmanı olmadığı için saldırılara karşı daha az açıktır. Ayrıca, API ile iletişim kurarken HTTPS, JWT gibi protokol ve tekniklerden yararlanabilirsiniz.

  • Ölçeklenebilirlik: Web sitesinin ölçeklenebilirliği artar, çünkü içerik ve sunum katmanlarını ayrı ayrı ölçeklendirebilirsiniz. Ayrıca, bulut tabanlı headless CMS hizmetleri sayesinde altyapı yönetimiyle uğraşmanıza gerek kalmaz.

Headless CMS’in dezavantajları şunlardır:

  • Kurulum zorluğu: Web sitesini oluşturmak için hem bir headless CMS hem de bir ön yüz geliştirme ortamı kurmanız gerekir. Ayrıca, API ile iletişim kurmak için ekstra kod yazmanız gerekir.

  • Ön yüz geliştirme gerekliliği: Web sitesinin ön yüzünü sıfırdan veya hazır bir framework kullanarak geliştirmeniz gerekir. Bu da teknik bilgi ve zaman gerektirir.

  • Tema ve eklenti eksikliği: Headless CMS’ler, geleneksel CMS’ler gibi hazır tema ve eklentilere sahip değildir. Bu da web sitesinin tasarımını ve işlevselliğini zenginleştirmek için ekstra çaba gerektirir.

Headless CMS örnekleri arasında Strapi, Contentful, Prismic gibi hizmetler bulunmaktadır.