CMSs are pretty hard to ignore because they're everywhere on the internet. WordPress, for example, powers nearly 40% of the internet today.
In this article, we'll cover what CMSs are and why you should care about them. I'll also introduce you to a new type of CMS that seems to be everywhere at the moment – the Headless CMS. And we'll do all this with a story!
Life has a funny way of making you try things. And after years of ignoring CMSs as a technology, in mid 2020 I got a job at Strapi, a headless CMS tool. Since then, I have developed a pretty good understanding of what these things do – so let's get into it.
What is a CMS?
A Content Management System (CMS) is a tool that helps users create, manage, and modify digital content.
In this article, however, I won’t get into the nitty-gritty of it. Instead, if you want to learn more you can have a look at an article I wrote that goes deeper into various types of CMSs.
What is a Headless CMS?
A headless CMS has a back end where content is prepared – and that's it. The content and its data are only accessible via calls made to the API, whether it's REST or GraphQL.
Monolithic vs decoupled vs headless architectures
Besides serving content to multiple platforms, there are a couple other reasons why you would want to use a Headless CMS.
You don’t want to give up developer flexibility
Adopting a Headless architecture by default means that you have the flexibility of selecting a front end tool of your choosing. And for many developers, this is a critical advantage.
You need a secure content solution
Decoupling the front end from the back end makes targeted attacks much harder. This is something some traditional CMSs still struggle with today.
You want to future proof your tech stack
Going headless also means that you’re less dependent on a single solution for a front end. Should you need to upgrade to a more modern front end or add a new front end altogether, headless makes this much easier.
You need to create custom and personalized experiences
This is becoming a really important benefit for headless CMSs for many organizations.
With headless you have the opportunity to tailor different experiences for different platforms all from a single content source.
How I got into Headless CMSs
So I really like GraphQL, and that’s how I got started with Strapi. Working for a CMS was like diving head first into this ecosystem. I thought I understood Headless CMSs because to me they were “data, API, frontend” and that’s how I thought about it.
Well, we use these things to build our front ends, but we often overlook the content management side of things when we think about building a front end like that. And it wasn't until I started working with Strapi that I recognized my assumption.
“Content Management” sounds kinda boring, right? And CMS? “Ewww why would I want to use such a tool?” I know! Me too, but hear me out. CMSs actually pretty useful. So let’s talk about how and why a CMS might help you out.
Why Do You Need a Headless CMS?
For starters, there’s no downplaying the role of content in today's world. Content is everywhere and manifests itself in so many forms through text, audio, video, and more.
For a long time, computers and browsers were the main tool for content consumption. We read blogs, watched YouTube videos, and listened to podcasts on our personal computers.
Gradually our computers got smaller and less obvious. Content in its many shapes and forms started to appear all around us. It showed itself in mobile phones, on our smart televisions, in our cars, in our virtual assistants and wearable devices.
The way people consumed content changed, and so did the way we had to build content-consuming experiences.
So How Does Headless CMS Help?
Traditionally, CMSs were monoliths with the front end and back end tightly coupled. The content you added in the CMS back end only showed up on the front end it was coupled to - think WordPress and Drupal.
This proved inefficient as developers needed a better way to build and adapt to this new consumer behavior.
The solution? Rip the head off a traditional CMS and make it possible for your back end to deliver content to multiple platforms. This was how Headless was born.
Why You Might Not Need a Headless CMS
Headless isn't necessarily the right solution for all use cases, though. It might not be for you if...
You have a small team
Adopting and building a headless architecture takes quite a bit of effort. To reap all its benefits you would have to have a dedicated developer team to build your front end as well as people on your team to work on adding content to your CMS.
You rely heavily on a simple live preview implementation
Live previews on Headless CMSs aren’t the most intuitive to set up (as of writing this) and take some effort from developers to implement.
You only require simple publishing capabilities
As we just learned, headless takes a reasonable amount of effort to get it working efficiently and effectively.
If you need only simple publishing capabilities without features like internationalization or role-based access control, then it’s best to wait till you need those additional features to use a Headless CMS.
Use Cases for a Headless CMS
A lot of my early CMS projects centered around corporate sites and personal blogs, which are both solid use cases for headless. But I don’t build sites full time so I don’t ship code often.