According to Wikipedia, a Content Management System (CMS) is an application that can be used to manage the creation and modification of digital content.
A CMS is usually made up of two major parts: the backend, which is responsible for creating and managing content, and the frontend, which is used to display the content to viewers. Some of the basic features of a CMS include a content editor, user management capabilities, and an intuitive dashboard.
The rising popularity of JAMSTACK has spurred on the adoption of headless CMS. They give developers the freedom to choose how content is served.
A headless CMS is basically a CMS without the frontend layer. It is also known as JAMSTACK CMS in some circles. The frontend is decoupled from the CMS, which gives developers the flexibility to build the view layer of the CMS in any way that’s desirable to them.
Kicking off the list is Ghost, which is a popular CMS with 34.5K GitHub Stars.
Ghost is an API-driven, headless CMS built with Node.js. It is a complete decoupled headless CMS, which means it can either be used in a headless manner or via templates. Ghost serves its content using a set of REST API endpoints, which are divided into three major categories:
It also comes with a set of tools out-of-the-box, which include:
To get started quickly with Ghost, you have to install the CLI via
yarn global add ghost-cli@latest
After successfully installing the Ghost CLI, you can go on to install Ghost in the directory of your choice by running the command below:
ghost install local
Strapi is an open source headless CMS also based on Node.js and maintained by over 100 contributors. It is a fully-customizable CMS.
Some of its features include:
Data in Strapi can be consumed either via REST API or GraphQL. It also offers a one-click deployment option to hosting platforms such as Heroku, Digital Ocean, and Platform.sh.
The functionalities of Strapi can be extended by integrating tools such as Cloudinary, Mailgun, Algolia, Redis, Sentry, and others.
To get started with Strapi, run the code below in your terminal:
yarn create strapi-app my-project --quickstart
Netlify CMS is a single-page React application that gives users a way to work with content on any site built with a static site generator. It is a Git-based CMS, which means the data resides in files stored in a Git repository as opposed to most API-driven CMS, which store and fetch data from a database.
Some of the features of Netlify CMS include:
Keystone 5 is the latest version of the Keystone CMS. The monolithic architecture of the previous versions was overhauled for an API-driven approach.
Keystone 5 is a headless CMS built with Node.js. It is frontend agnostic and can be used by popular frontend frameworks, static site generators, and mobile applications.
It is also fully customizable and allows you to pick the features you need, such as the type of database. The Admin UI is very intuitive and changes based on the defined schema.
Some of the key features of Keystone 5 include:
To get started quickly with Keystone 5, make sure you have either of the supporting databases: MongoDB and PostgreSQL.
Then, run the code below in your terminal
yarn create keystone-app my-project
Follow the on-screen prompts to set up Keystone. After a successful installation, go to the root directory of the application and run the code below:
The above command starts up the Keystone development server.
Open Source Headless CMS is becoming popular as an efficient alternative for managing content. It allows you to be in charge of how your content is stored, and how you want it to be presented. Each of the mentioned CMS in this article come with a unique set of features. It is up to you depending on your use case to determine what will be best for your application.
Debugging code is always a tedious task. But the more you understand your errors, the easier it is to fix them.
ElectricSQL is a cool piece of software with immense potential. It gives developers the ability to build a true local-first application.
Leptos is an amazing Rust web frontend framework that makes it easier to build scalable, performant apps with beautiful, declarative UIs.
We spoke with Dom about his approach to balancing innovation with handling tech debt and to learn how he stays current with technology.