Strapi - Headless CMS berbasis node js yang gratis digunakan.
id

Strapi - Headless CMS berbasis node js yang gratis digunakan.

Summary

Strapi adalah headless cms yang populer di kalangan developer yang biasa membuat website, aplikasi yang memiliki banyak platform dan tidak memiliki cukup waktu dan resource untuk membuat backend mereka sendiri. Strapi mempermudah tugas kita, sehingga kita cukup fokus untuk membuat aplikasi yang kita inginkan. Berbeda dengan wordpress yang memiliki semua fungsi didalamnya, mulai dari backend dan frontend.

Apa itu Headless CMS

Berbeda dengan Wordpress, Headless cms tidak mengatur bagaimana kita membuat front end, aplikasi ini hanya berfokus pada backend, dimana kita disediakan dashboard admin untuk mengatur berbagai hal yang berkaitan dengan user, konten dan assets. Tentang bagaimana kita menggunakan konten tersebut, biasanya kita diberikan opsi komunikasi dengan menggunakan Rest API.

Kalian bisa mengetahui daftar Headless CMS yang ada sekarang ini di https://jamstack.org/headless-cms/.

Mengenal Strapi

Strapi adalah CMS (Content Management System) Headless Open Source, dibangun dari 100% Javascript dan digadang-gadang bisa diubah atau di custom sesuai keingingan kita.

Jenis Edisi Strapi

Ada dua jenis edisi strapi, Community Edition & Enterprise Edition.

Fitur Strapi

Ada beberapa fitur yang mungkin kalian perlu ketahui sebelum memilih strapi sebagai backend atau headless cms kalian.

Multi-databases support

Strapi support beberapa SQL Database, sebelumnya memang support MongoDB, tapi karena strapi yang baru mereka lebih fokus kepada SQL Database seperti :

SQLite

MySQL

Portgres

MariaDB

Kalian juga bisa menggunakan database yang berbeda untuk keperluan development dan juga produksi, contohnya saya biasanya hanya menggunakan sqlite saat development, tentunya dengan data dummy. Ketika sudah bisa dijadikan produksi, schema database yang kita buat bisa kita arahkan ke database yang lain seperti MySQL / MariaDB.

GraphQL or RESTful

Ada dua jenis komunikasi API yang disupport secara default, yaitu GraphQL dan RESTful, kita bisa gunakan dengan berbagai jenis client yang support kedua komunikasi tersebut. Mungkin kita bisa menggunakan Javascript framework seperti React, Vue dan Angular, atau mengakses menggunakan aplikasi mobile, IoT, Server dan sebagainya.

100% Javasfript

Strapi dibuat dengan 100% javascript, kita perlu menggunakan platform Node.js untuk menjalankan server strapi.

Webhooks

Strapi juga mendukung webhooks untuk keperluan aplikasi kita.

Auto-Generated Documentation

Documentasi tentang API akan otomatis dibuat ketika kita membuat collection, fields dan sebagainya. Tentunya memudahkan kita untuk mencari dokumentasi yang didukung oleh strapi dengan format sesuai dengan konfigurasi yang kita buat.

Authentication & Permissions

Fungsi autentikasi dan permisi disediakan secara default. Kita bisa membuat user dan role langsung di dashboard aplikasi strapi.

Customizable API

Kita bisa mengkustom API untuk mendukung kebutuhan kita, misalnya ada beberapa API yang tidak disediakan oleh sistem strapi secara default. Tapi perlu dicatat, jika kalian mengkustom strapi, maka kalian juga perlu selalu me-maintain kode yang kalian buat.

Multilingual

Fungsi multilingual ada secara default. Fungsinya apa? Contohnya kita ingin membuat website yang memiliki beberapa opsi bahasa, maka kita bisa aktifkan fungsi multilingual agar satu konten / artikel memiliki beberapa versi bahasa, tentunya memudahkan kita untuk menjangkau kalangan / negara tertentu.

Marketplace / Plugins

Ada banyak plugin yang kalian bisa gunakan untuk melengkapi strapi. Ada yang dari official strapi, ada yang dari provider, dan ada juga yang dari perorangan. Kalian perlu cek kembali support plugin yang akan kalian pakai untuk mengurangi masalah di masa depan.

Kekurangan Strapi

Kita tahu no body is perfect, termasuk strapi. Khususnya strapi versi terbaru yaitu versi 4.

Format RESTful API yang sangat susah untuk digunakan

Beberapa waktu lalu saya sudah ingin menggunakan strapi dan mempelajari bagaimana saya menggunakan RESTful API mereka. Ternyata format yang mereka kirimkan dari server sangat susah sekali untuk digunakan, terlalu banyak nested dan tidak intuitif sekali. Banyak yang menyayangkan dengan konfigurasi ini, kalian bisa membaca diskusi github di https://forum.strapi.io/t/discussion-regarding-the-complex-response-structure-for-rest-graphql-developer-experience/13400/3.

Sayang sekali mereka tidak bisa mengubah atau memudahkan format API di versi 4 ini, kemungkinan akan dipertimbangkan di versi selanjutnya.

Memerlukan Server untuk berjalan (Paling tidak)

Jika kalian biasa menggunakan PHP dan Shared Hosting, kemungkinan kalian akan mulai mempelajari bagaimana menggunakan VPS jika kalian ingin menggunakan Strapi sebagai Headless CMS. Khususnya jika ingin menggunakan Strapi sebagai Dynamic Content Server, artinya diperlukan oleh aplikasi untuk berjalan. Jika kalian hanya menggunakan strapi untuk kebutukan aplikasi static, mungkin bisa dijalankan di komputer dan dimatikan ketika website static sudah dibuat.