A Content Management System (CMS) is software that allows you to create and manage website content. It simplifies the web publishing process by enabling non-developers to handle the entire content lifecycle, from creation to publishing, without needing to work directly with code.
The exact percentage of websites that run on a CMS differs depending on which source you look at. WPBeginner’s 3023 CMS Market Report puts this number at around 68%. Other sources put it a bit higher or lower, but we can confidently say that most websites run on some CMS.
In this blog post, we’ll delve a little deeper into the world of Content Management Systems and look at the difference between traditional and headless content management CMSs.
What is a CMS?
To discuss what a CMS is, let’s use an example of a travel agency website. This website may have various pieces of content, such as:
- Tour packages with dates, itineraries, and prices
- Blog posts or articles related to travel
- Detailed city and country guides
- Photo Galleries
- Pages with background on individual tour guides and the trips they host
- Various other related pages with company information, terms and conditions, etc.
This is where a CMS comes in.
A CMS not only helps the travel agency staff to create the content for all the website pages, but it also presents the content to the potential customers browsing the website to discover trips.
If we look at this at a high level, we can divide a CMS into two primary functions: content management and content delivery.
The content management part of a CMS is the part of the CMS that deals with content creation. In most modern CMSs, this deals not only with creating the content itself but also with modelling the content.
Let’s talk more about some of the tasks related to content management.
As discussed earlier, we mentioned various types of content to be created. Some of these types of content are very specific to the travel industry and our travel agency, such as tour packages, tour guide information, and city/country guides.
This is where content modelling comes in.
Content modelling is the process of defining the types of content and the attributes of those content types. For example, you may define a content type for a tour package. The attributes for this content type may be things like:
- The name of the tour
- A detailed written description with the highlights of the tour
- The destination(s)
- The dates with availability
- The itinerary
- The price
Content modelling also involves defining the relationships between different types of content. For example, a tour may be linked to a specific tour guide so that you can display the list of tours they host on their information page.
There is still more to content modelling, but a detailed explanation is beyond the scope of this blog post. The main takeaway is that content modelling involves defining the structure of your content. Content creation and management
Content creation and management deals with managing the lifecycle of a singular piece of content. For example, you will have a user interface where you can write the body of the content in a rich text editor and also define the other attributes of the content. You can also schedule a piece of content to be published on the website on a specific date and possibly eventually archived or even deleted. While the content is published on the website, you can update it to correct errors and update it with the latest information.
Our travel agency will also need to publish photos of their tours and documents with terms and conditions that need to be downloaded, printed, and signed by their customers. These are referred to as assets, and asset management deals with managing the lifecycle of these assets - i.e. uploading photos and documents and deleting them. Most CMSs also provide an easy way to reference these assets in your various content types. For example, you may be able to include photos inside a blog post or attach the terms to a specific tour.
Users, permissions, and workflows
The final part I want to touch on is user management, permissions, and workflows. In the case of your travel agency, not everyone should be able to manage content. Customers should not have access to managing the content, but even employees may be limited by what they can do.
You may, for example, only allow admin users to manage the content model. And limit certain types of content to be edited only by the relevant department's employees.
Besides this, you may want to implement content publishing workflows. You may have content writers who write your blog posts, but these blog posts need to be proofread and approved by a content manager. Many CMSs allow you to create workflows to manage this process.
The content delivery function is the part that is responsible for delivering the content to the end user. We are being specifically a bit vague about this, as content delivery may mean something different depending on your CMS.
The content delivery function is also the main difference between traditional and headless content management systems. We will look at content delivery in more detail below as it relates to both.
What is traditional CMS?
In a traditional CMS, the CMS generates web pages to present the content to the user. In the case of our travel agency, this means that the CMS may generate the following web pages:
- A home page
- A page with the list of all tours
- A page with the details of each tour
- A page with the list of all blog posts
- A page with the content of each blog post
A traditional CMS is a complete end-to-end website solution. It gives you the tools to manage the content and generate the web pages presented to your website visitors.
What is a headless CMS?
In a headless CMS, the CMS does not generate any web pages. Instead, the CMS exposes the content via an API, and it is up to the user of the CMS to present that information to the website visitors. Once again, we are deliberately vague about presenting the content as it depends on the use case. In the example of the travel agency, this will probably involve HTML web pages presented to your website's visitors.
However, you may also choose to present the content in different ways.
Let’s say you have a web application and use a headless CMS to manage your application's documentation. You generate a website where a user can search and browse the documentation, but you can also surface that documentation inside your application in a support widget. A headless CMS gives you much more flexibility on where and how your content is presented.
How do you choose between a traditional and headless CMS?
As we saw, the main difference between a traditional and headless CMS is the content delivery.
➡️ A traditional CMS will generate web pages to present the content to the website visitors.
➡️ A headless CMS will leave the generation of the web pages up to you.
Ultimately, this comes down to a decision between time/cost and flexibility.
With a traditional CMS, you can get up and running almost immediately. You may need to spend a bit of time adjusting your website's look and feel, but the website's generation is included out of the box.
With a headless CMS, you must spend much more time (and money) to get to the final website. Not only that, but headless CMS systems are typically more expensive than traditional CMSs as they are primarily geared towards enterprises and larger companies.
You will probably need to get professional developers to write code to retrieve the content from the headless CMS via their API and then generate HTML pages from it. A common way to do this is by using a static site generator.
However, while the headless CMS requires more work, it provides more flexibility. You can repurpose the content in as many ways as you want. As we demonstrated before, you may, for example, surface the content inside your application in a support widget.
Our general rule of thumb is, therefore, as follows:
- If you want a website up and running quickly and don’t care about repurposing the content outside the website, go with a traditional CMS.
- If you want complete flexibility on where and how your content is presented, go with a headless CMS.
One final caveat is that the lines between traditional and headless CMSs are becoming blurred. Most traditional CMSs now also include APIs that allow you to read and present the content in any way you choose. Here is an article, for example, demonstrating how to use Ghost as a headless CMS. WordPress also offers a REST API to interact with your content. Both Ghost and WordPress are considered traditional Content Management Systems.
Getting your content into your CMS
Before concluding this blog post, I want to discuss the writing of your actual content. As discussed earlier, all CMSs have a content management feature that allows you to create the content. The content writing experience, however, is often not very good.
When you compare the writing experience of a CMS with proper writing tools like Google Docs and Notion, it falls far short.
Many content writers prefer writing their content in Google Docs and Notion because of the following reasons:
- It provides you with a much richer writing experience
- It provides collaboration features where you can work with other people on content and allow others to review and comment on your content.
The only issue with this is that, once you move that content from Google Docs or Notion to your CMS, you will oftentimes have to do double work. When copying your content, you may lose formatting, which you must fix. You must also upload your images separately and perform additional tasks like setting the author, categories, etc.
This is where Cloudpress comes in.
It will export perfectly formatted content from Google Docs and Notion to your CMS with the click of a button. The video below gives you a brief introduction to Cloudpress.
We invite you to sign up for a trial and try it yourself.
In this blog post, we briefly introduced Content Management Systems and discussed the similarities and differences between traditional and headless Content Management Systems.
A traditional CMS lets you get a website up and running quickly, but you will probably sacrifice some flexibility. On the other hand, a headless CMS gives you amazing flexibility but requires more time and money to get you up and running.