If you're new to traditional Content Management Systems and what they are about, you might want to take a first look into this post. However, if you already know anything about traditional CMS or you just want to learn more about some alternatives and more advanced ways, keep reading.
While traditional CMS provide a full featured platform for you to not only create your content but also deliver that to your audience in a predesigned layout, a headless CMS is more like a manager for your you want to deliver. That basically means, a headless CMS only cares about the content you're creating but not about its presentation.
Wait, what? Why would I need a headless CMS then?!
A CMS has its benefits, that's for sure. But what about a truly individual design? What if you don't want to edit a predefined design everyone is using? Well, that's where a headless CMS kicks in. Unlike traditional CMS, a headless CMS only provides a way to create content. This means, you'll need to set up the whole design and layout in which you want to deliver your content on your own. This may seem like a good idea, since you virtually open up your world to a fully individual website design which can fit all of your needs. But a drawback of this is the additional workload you may have.
What are the use cases for a headless CMS?
As already mentioned, a headless CMS most of the time only helps you creating your content. You have to care about the rest of your own. Think about a simple portfolio website you are running in plain HTML. Anything you want to change, you would have to do manually by editing your markup. Using a headless CMS would help you care less about the markup you would have to create regarding your content and keep you focused on the design. But that's just a simple example. What about a more complex one?
Let's just think about an app you're running. Be it a native (mobile) app or a web app. In most cases the app will have some dynamic content which will be shown. Said app would communicate through an API (Application Programming Interface), fetch those content and show that. Usually, that API would be provided by a server. Instead of developing a server and providing an API for the app, a headless CMS could do the heavy lifting for us which eventually would save a lot of work and time.
So basically, a headless CMS provides us with a solid foundation for a more complex application with a lot of freedom.
But be aware: This can also lead to a lot of trouble.
Possible drawbacks
Developing an individual design may lead to a lot of creativity but also comes with some possible drawbacks. Imagine developing a blog or forum with user registration. While a traditional CMS takes care of that, including the visual parts, running a self designed site backed by a headless CMS forces you to take care about user authentication and possible security issues by yourself. Even though a lot of headless CMS provide authentication endpoints through their API this can still be a pretty overwhelming task, especially if you're new to this.
Conclusion
After all, running a headless CMS has a lot of advantages, especially for experienced users. However, if you're either new to developing or just want to run a simple blog, you might want to use a traditional CMS.