Contentrain - Git Tabanlı Headless CMS

Kişisel olarak, İçerik Yönetim Sistemi (CMS) çözümlerini yakından takip ediyorum. Elbette bu duruma içerik yayınlama ve yayınlanan içeriklerin yönetiminde sıklıkla karşılaştığım problemler veya işleyişe dair pratiklik arayışımın etkisi büyük.

AA

Uzun denebilecek bir süredir içerik yayınlama ve yönetimi sürecinde Grav CMS kullanmaktayım. Ancak, arka planda pek çok farklı çözümü de değerlendirmeye, daha işlevsel ve bütüncül çözümleri denemeye devam ediyorum. Pek çok veriye no-code çözümler ve API'ler aracılığı ile erişilebildiği güncel durumda Headless CMS çözümleri tümleşik sistemlere göre açık ara daha zengin ve esnek bir yapı sunmaktalar.

İçerik yönetim sistemlerine dair daha önce yayınladığım Grav CMS, Gridsome Nedir?, Spica Engine Nedir?, Ghost Nedir? Nasıl Kurulur? başlıklı yazılara göz atabilirsiniz.

Ghost, Strapi gibi global çözümlerin yanı sıra her geçen gün işlev ve deneyimde farklılaşan yeni çözümler de Product Hunt ve benzeri platformlar aracılığı ile duyurulmakta ve pazarda bir yer edinmeye çalışmaktalar1.

Projeye ProductHunt üzerinden oy vermek için burayı tıklayabilirsiniz.

Contentrain

Contentrain, kolay bir şekilde JAMstack uygulamaları ve web siteleri oluşturmak üzere geliştirilmiş2, geliştiriciler, pazarlama uzmanları ve içerik yöneticilere yönelik özelleştirilmiş deneyim ve özellikler sunan, Git tabanlı bir Headless CMS çözümü3.

Contentrain - Git tabanlı Headless CMS

Kurucu ortaklar A. Bayhan Bayramoğlu ve Sercan Oray ile birlikte toplamda altı kişilik bir ekipten oluşan Contentrain4, hem web sitesi hem de Discord5 kanalları aracılığı ile kullanıcılarla sürekli iletişim ve etkileşim halindeler.

Contentrain - Git tabanlı Headless CMS

Neden Contentrain

Yukarıda bahsi geçen yapı içerik yöneticilere ve geliştiricilere içerik versiyonları arasında kolay geçiş, çoklu dil (i18n), içerik ekibi ve esnek yetki tanımlama özelliği ile birden fazla kişinin içerikleri karmaşadan uzak bir şekilde yönetilebilmesi, geliştiriciler için esnek model yapısı, popüler framework'lerle kolay bir şekilde ilişkilendirilebilme, hız, güvenlik gibi avantajlar sunmakta6 7 8.

Contentrain - Git tabanlı Headless CMS

Contentrain Headless CMS ücretsiz kullanım seçeneğinin (üç projeye ve proje başına iki kullanıcıya kadar) yanı sıra, Free, Starter, Professional ve Enterprise plan'lar çerçevesinde ek avantajlar da sunmakta9.

Contentrain Kurulum İşlemleri

Contentrain kurulum aşamasında sizden yeni bir proje oluşturmanızı istiyor. Bu aşamada Git sağlayıcılardan (Github, Gitlab) uygun olan seçim üzerinden yapılandırma işlemine başlanabiliyor. Bir sonraki aşamada ise yapılandırma tercihinin (Manual, NextJS, Gatsby, Nuxt.JS ve dahası) belirtilmesi gerekiyor10.

Contentrain - Git tabanlı Headless CMS

Create butonuna tıklanması ile birlikte Git sağlayıcıda oturum başlatılıyor ve yapılandırma sürecine geçiliyor. Storage Structure, Roles & Permissions ve Collections adımlarının da tamamlanması ile birlikte işlem tamamlanmış oluyor.

Tercih edilen framework ile ilişkilendirilme işleminin de tamamlanmasının ardından artık JAMstack uygulaması veya web sitesi erişime açık hale gelecektir.

NextJS Blog

NextJS İle Örnek Bir Kurulum İşlemi

Contentrain yapılandırma aşamasında seçilen framework'e bağlı olarak yapılandırma işlemleri farklılık gösterebilir. NextJS seçimi ile birlikte dosyalar da elbette buna göre oluşturulacaktır.

NextJS Blog

Öncelikle elbette bir repo erişimlerinin belirlenmesi gerekiyor. All repositories ya da önceden oluşturulmuş bir repo seçimi ile birlikte ikinci aşamaya geçilebilir.

Contentrain & NextJS - Git Repository

Ardından dosyaları git commit etmek ve Contentrain üzerinden seçmek yeterli olacaktır.

git clone ile repoyu indirip blog-starter'i yükleyelim. Ardından ilişkili modüllerin yüklenmesi, geliştirme sunucusu ile kurulumun görüntülenmesi ve kurulumun yayın için hazır hale getirilmesi adımları izlenebilir.

yarn install
yarn dev
yarn build

Elbette bu işlemlerin yanı sıra npx veya yarn ile sıfırdan kurulum da yapılabilir11.

npx create-next-app --example blog-starter blog-starter-app
# yarn create next-app --example blog-starter blog-starter-app

Tüm bu işlemlerin tamamlanmasının ardından çevrimiçi erişim sürecine geçilebilir. DigitalOcean üzerinden oluşturulacak uygulama alanı ile doğrudan GitHub ya da GitLab üzerinden dosyalar çekilerek site yayına açılabilir12. Elbette bu işlem için öncelikle doctl ile oturum başlatmak gerekli. Applications & API altından oluşturulacak bir key ile erişim sağlanabilir13.

doctl auth init
doctl apps create --spec app.yaml

app.yaml içeriği için aşağıdaki spec'i örnek (elbette repo yolunu güncelleyerek) alabilirsiniz.

name: my-app
region: fra
services:
- build_command: yarn build
  environment_slug: node-js
  github:
    branch: main
    deploy_on_push: true
    repo: ceaksan/TEST-NextLocal-v2
  http_port: 8080
  instance_count: 1
  instance_size_slug: basic-xxs
  name: test-nextlocal-v2
  routes:
  - path: /
  run_command: yarn start
  source_dir: /

İşlemler bu kadar. Komutun uygulanması ile birlikte dosyalar DigitalOcean üzerinde yapılandırılmaya başlanacaktır.

DigitalOcean App - NextJS Blog
NextJS Blog

İşlemlerin tamamlanmasının ardından site erişilebilir ve Contentrain aracılığı ile içerikler eklenmeye / düzenlenmeye başlanabilir.