By Kaushal Maganti
A content management system (or CMS) is an application used for web development that allows content creators to produce, edit and publish text, or images, to a website. CMS software is very common on the web since it allows non-technical people to write and manage content without worrying about code. However, there is a trend moving towards headless content management systems, which promise more flexibility at the expense of more development time. The main distinction of a headless CMS is that it doesn’t have a front-end; it can be used to store content but it doesn’t visually display it. Neither system is superior to the other and it depends on the specifics of the website, and the development team, to determine which system is most suitable. So when should you use a headless CMS and when is a traditional CMS good enough? To answer that question, let’s first see what a CMS is supposed to do.
What does a Content Management System do?
A content management system is software used to manage web content (e.g. WordPress and Squarespace). They have graphical user interfaces (GUIs) that allow content creators to enter and style their content by choosing from existing templates or downloading plugins for greater customization. The content is stored in a database and is displayed to the user based on a template. Because CMS tools are meant to be user-friendly, non-technical personnel can use them to manage a website without touching any code.
What is a Headless Content Management System?
Advantages of Headless CMS
The main advantage of headless CMS’ is that they allow for more flexibility in the design of the website. Front-end developers can retrieve data from the CMS and present it in any way they want, which opens up many more possibilities. Instead of adhering to the limited functionalities and standard templates of a traditional CMS, companies with a dedicated front-end development team can use a headless CMS to design large-scale and unique websites that can stand-out from competitors.
The decoupling of content and the UI also allows for more flexibility during development. Traditional CMS tools typically require the use of specific frameworks and languages, whereas headless CMS tools let developers use whichever framework they are comfortable with. They also allow content creators and developers to work in parallel, which can increase overall productivity. Decoupling also makes it easier to change the design in the future. In traditional CMS, content is deeply tied to the layout, which makes it harder to change aspects of the design; major changes might even require a whole new CMS.
Content managed by a headless CMS can easily be displayed across multiple platforms (such as web and mobile). On the other hand, content and layout are intertwined in a traditional CMS, so it can’t accommodate platforms that they weren’t originally designed for. A headless CMS is flexible and future-proof, allowing it to power other platforms even if they are not in your current product roadmap.
Advantages of Traditional CMS
Traditional content management systems have their own advantages too, with the biggest being that traditional CMS software is much simpler to set up and use. Everything from content management to design and UI is in one place, making it easier to develop and publish content quickly. It may be easier and cheaper to simply use the templates provided by a traditional CMS than to use a headless CMS and design and build everything from scratch. And for simpler websites, such as personal sites and blogs, the templates provided by a regular CMS are likely sufficient, so there is no real benefit to using a headless CMS.
A traditional CMS should be used by organizations without a developer team, or new content creators without the resources for developers. This is because developers are required to tie together the pieces to create a full website with a headless CMS. Headless CMS tools don’t provide the UI, with the expectation that developers will manage that part.
On the other hand, a traditional CMS has a user-friendly interface that allows content creators to create and modify the UI themselves. Even if a company has a development team, a traditional CMS may be the better option if the content creators want to manage the look of their content themselves, instead of relying on developers to do so.
So, which one should you use?
A traditional CMS may be the better option for smaller organizations without the necessary resources to effectively use a headless CMS. It’s also the better option for simple websites that don’t have any features that a standard CMS template may not have. But, if you don’t want to use a template for your website, or if you want added functionality that traditional CMS tools can’t provide, a headless CMS might be better. Make sure your organization has the resources and time for a development team to create the UI for the website. In addition, a headless CMS should be used when additional flexibility is needed, for example: if a mobile or television app needs to be developed with the same content as the web app.
What we use at TribalScale
At TribalScale, the two web projects I’ve been on use Contentful, a headless CMS. We have a team of developers and designers who can fully take advantage of a headless CMS to build more customized and complicated websites. We find it especially useful for our TribalScale website, since the increased freedom and flexibility allows us to create a website that stands out with our bold new brand.
Another project I worked on, for a major loyalty rewards brand, required us to create a Google Chrome extension to go along with the website. The content on the Chrome extension is the same as the website. Contentful allowed us to easily use the same CMS for both platforms without making many changes. If we used a traditional CMS, we would’ve had to duplicate the content for the extension. In general, for the types of web projects we work on, we prefer a headless CMS for its flexibility and cross-platform usability.
Kaushal is an Agile Software Engineer at TribalScale. He is a Computer Science student at the University of Waterloo and completed his third co-op term at TribalScale. He loves all things tech and is a science nerd.