DEV Community

Cover image for What are Headless CMS?
Pulkit Singh
Pulkit Singh

Posted on

What are Headless CMS?

A headless content management system (CMS) is a backend system that enables you to manage and organize your content, but does not have a frontend (user interface) for displaying that content. Instead, the content is made available through an API (Application Programming Interface) for display on any device or platform, such as a website, mobile app, or digital signage.

Image description

Headless CMSs are typically used in cases where you need to deliver content to multiple channels, or when you want to decouple the content management from the presentation layer. This can be useful for creating a more flexible and scalable content management system that can be integrated with a variety of different frontend systems.

Some popular headless content management systems (CMSs) include:

Image description

Contentful: A cloud-based headless CMS that enables you to create, manage, and deliver content to any platform. It features a flexible content model, powerful API, and integrations with a variety of tools and services.

Image description
Strapi: An open-source headless CMS that you can self-host or deploy to the cloud. It offers a user-friendly interface for managing content, and provides a flexible and customizable API for delivering content to your frontend applications.

Image description
Sanity.io: A cloud-based headless CMS that allows you to create and manage structured content, and delivers it through a powerful API. It features a real-time collaboration platform and integrations with a variety of tools and services.

Image description
GraphCMS: A cloud-based headless CMS that enables you to create, manage, and deliver content through a powerful API. It offers a user-friendly interface for managing content, and provides integrations with a variety of tools and services.

Image description
ButterCMS: A cloud-based headless CMS that offers a flexible content model and a powerful API for delivering content to any platform. It features a user-friendly interface for managing content, and provides integrations with a variety of tools and services.

Honourable mentions

  • Netlify CMS: An open-source headless CMS that is built on Git and designed to work with static site generators like Jekyll, Gatsby, and Hugo. It offers a user-friendly interface for managing content, and integrates seamlessly with Netlify's hosting and deployment platform.

  • Cosmic JS: A cloud-based headless CMS that enables you to create, manage, and deliver content through a powerful API. It features a user-friendly interface for managing content, and provides integrations with a variety of tools and services.

  • Directus: An open-source headless CMS that you can self-host or deploy to the cloud. It offers a user-friendly interface for managing content, and provides a flexible and customizable API for delivering content to your frontend applications.

  • Ghost: A headless CMS that is designed for creating and managing online publications. It offers a user-friendly interface for managing content, and provides a powerful API for delivering content to any platform.

  • DatoCMS: A cloud-based headless CMS that enables you to create, manage, and deliver content through a powerful API. It features a user-friendly interface for managing content, and provides integrations with a variety of tools and services.


To conclude, a headless content management system (CMS) is a backend system that enables you to manage and organize your content, the content is made available through an API for display on any device or platform. Headless CMSs are useful for creating a more flexible and scalable content management system that can be integrated with a variety of different frontend systems. There are many other headless CMSs available, each with its own set of features and capabilities. You should choose a headless CMS based on your specific needs and requirements.

Top comments (15)

Collapse
 
jmikrut profile image
James Mikrut

You forgot Payload

Collapse
 
j4acks0n profile image
j4acks0n

what is that?

Collapse
 
pulkitsingh profile image
Pulkit Singh

Payload cms. check it out.

Collapse
 
vcpablo profile image
Pablo Veiga

What about Storyblok?

You missed one of the most famous and used ones….

Collapse
 
pulkitsingh profile image
Pulkit Singh

yes! storyblok is my personal favourite.

Collapse
 
csituma profile image
Clara Situma

Strapi is my favorite so far but they no longer have mongoDB support ☹️

Collapse
 
vaibhavfuke profile image
Vaibhav

Why do you want a mongo db in the first place. Cause relations with the relational database will be the same right. And we don't use raw queries with strapi. We can but we generally don't use. We use orm functions. And they are same

Collapse
 
csituma profile image
Clara Situma

I wanted to integrate it with existing project with mongo db for client project without changing to relational db thats the only reason why i was dissapointed.

technically i could with v3 strapi but not a good idea using sth almost deprecated

Collapse
 
kolja profile image
Kolja

Can you explain me, why you use Strapi and not Directus?

Collapse
 
vaibhavfuke profile image
Vaibhav

Vscode is useful only because of its diverse plugins. Without plugins it is of no use. Same goes for strapi. Jwt auth, providers, email. Almost every feature has a plug-in for strapi. And it's increasing day by day. A project without community plug-in is difficult to become popular. Think WordPress without woo commerce

Collapse
 
csituma profile image
Clara Situma

I have never heard of directus before... will check them out

on why strapi, because it has good support and community

Collapse
 
fruntend profile image
fruntend

Сongratulations 🥳! Your article hit the top posts for the week - dev.to/fruntend/top-10-posts-for-f...
Keep it up 👍

Collapse
 
bias profile image
Tobias Nickel

i like pocketbase as a cms. it describes itself as small database, but is so much more.

Collapse
 
j4acks0n profile image
j4acks0n

what is that?can you explain to me?,use for?

Collapse
 
bias profile image
Tobias Nickel

it is a small software made with golang on the server and a web-ui made using svelte.

because it is made using golang, you can download a single binary executable and run it. (windows, mac, linux, amd, intel, arm i think it run on any machine.)

internally it uses SQLite. so here you see a limitation, it is not made for large scale. But according to the makers, it can handle about 2000requests or queries per second what can get you a long way. also the sqlite db should be good for the first 100gb of data. This can get you a long way and will be plenty for most projects.

when it run, you can open the webUI and create tables and relationships between the tables. You define access rules for users. These rules are so powerful, that you even can build a 'role based access control'. or can make sure that some users can make only certain changes to the data. With these rules, it can cover many usecases where you need in strapi the paid commercial version.

Using the clientside js sdk, you can even listen for data changes. I think it uses websockets for that. this is very good for realtime applications. In the WebUI this feature is used to show you real time statistics about the database.

What I like is, you can have a column of type 'file', that allowes to upload and download files.

on my own server, I installed a cron job with 'crontab -e' (on linux) by adding a line like this:

@reboot   cd pocketbase && ./pocketbase -p 3000
Enter fullscreen mode Exit fullscreen mode

So it is always on when my server is on(allways).

I think you can feel how much I love pocketbase. it is easy to install and I think it only takes about an afternoon to understand the system completely. it is worth it, give it a try 👍