How many times as a developer of a site, blog or CMS have you wished to have a custom frontend. There have been cases where a developer would have wished that he could create his own frontend. Also, at times many times, a lot of developers had tried to tweak the site to fit into different mobile screens. The reason is mainly because you are bound by the themes and templates that are tied to the CMS and customizing the provided templates is sometimes even more challenging then creating new ones. Well, it seems now there is a very simple answer to all such questions. Headless CMS.
What is a headless CMS?
A normal CMS system be it wordpress, Joomla or anything that you write from scratch, basically it has more or components as shown in diagram.
Main components of a typical full CMS are
- Database or Data Store
- Code which has
- Database interaction logic
- Other logic for various features of site or blog.
- Frontend which includes themes and templates.
In most of the cases, frontend is very much tied or tightly coupled with the backend implementation. Headless CMS change this topology. They provide everything except for frontend, that you need to provide with. All the resources from data to content to security are exposed as Rest APIs which can be directly used in your custom frontend. This frontend could be Angular or React base application Native mobile app, it fits all.
When should I use Headless CMS
Headless CMS should be preferred choice when:
- You want to use the same CMS solution or content for web and native apps based on mobile devices.
- The frontend needs to be developed or integrated. So you need to have some frontend skills here to develop the site.
- Most of the current options are available as packages/libraries which needs to be extended or some how integrated in a new project. So you need to have some backend skills as well depending upon your choice of CMS.
- And Lastly if you have skills and time or money, headless CMS should be a preferred choice for any new site.
- You do have a choice of selecting a compiled version of the backend which would be relatively faster.
- And lastly, you are a good creative person, but technical as well.
When should I NOT use Headless CMS
From a laymans point of view, headless CMS would not be preferred choice when:
- You want quick development. Just use any COTS products such as Drupal, wordpress or any other, select a theme and you are good to go.
- You want a stable product with good community (community as of now).
- You are a good writer but dont have technical skills to develop or maintain the frontend and integration for the project you chose.
- Most of the existing CMS systems are quite mature but upcoming Headless CMS are evolving. This means, that you need to headless backend quite frequently depending upon the library you select. For the full CMS systems, this task would be easier most if the times.
- You want to take advantage of lot of themes and templates already created without investing time in creating and integrating a custom implementation.
I shall try to cover a practical implementation of one or few may be in coming months and get back. This was basically an overview of it, more to come. Do write in comments if you have a query or want to discuss on any topic. Till then cya.