Headless CMS vs WordPress vs Custom Solution [Tech Debates]

Alireza Mortazavi
7 min readSep 14, 2020

Do you love and hate WordPress at the same time? Are you thinking about replacing your WordPress site with a custom platform or CMS, but you are afraid that it’s a ton of work and you neither have the time, nor the budget?
Why not make it headless? OR at least look into the other headless solutions out there?

But what is even a headless CMS? Do you need to a hire a warrior with a big sword to make it headless and rip the head off? Well, sort of!

Let’s see the two side of this debate..

So, first thing first, what is a headless CMS?
The “head” in “headless CMS” refers to the front-end. You get rid of the head and just use the back-end to store the content and an API to deliver it. Then you will have a Content as a Service or CaaS. That means your content storage and delivery are handled by separate software. A headless CMS does not care about how and where your content gets displayed. A headless CMS has only one focus; storing and delivering structured content.

But why exactly is it needed? It seems like a bloody option!
Shortly, because you can keep the things you love about your WordPress or any other CMS that you are using and just create the extra needed features, without reinventing the wheel, which can save you precious dev time and subsequently costs.

Software Stack
Did you ever wanted to use modern dev tools like Node.js, React and server side rendering for your front end? By losing the head, you can integrate with any code base and use your preferred language, because there is no tight coupling between business applications and CMS, resulting in flexibility, that allows you to choose whatever technology and framework you like for your application. You can fetch the content via Rest or even GraphQL services. It’s all up to you.

Internet of Things
Another major benefit of using a headless CMS is that, the same content can be published to a website, an app or anything connected to the internet of things. You can even connect it to an AI-powered device! The possibilities of headless are endless, you can use it with any head that you want!

Micro-service Structure
You can achieve a faster time to market with a headless solution.

From a technical standpoint, a headless CMS simply uses API calls to render content within the website’s codebase, rather than creating complex relationships between code and content. For this reason, many developers find headless architecture easier to maintain, deploy and use. It can nicely fit into the microservice-based solution landscape.

Performance, Security and Scalability
One of the main reasons for moving to headless is because of performance and security. With a traditional CMS, most of the times you have to use a lot of plugins to achieve a desired output in your frontend, and after a while, these plugins slow you down or create security holes in your system! If you can replace them with custom codes, you can achieve higher page speeds, lower resource usage and also tighten the grip on the security.

Sometimes you just install a tiny plugin for an email subscription widget and the next day your website is completely hijacked! The most popular CMSs in the world right now has the horrendous history in terms of security. Well, they say your WordPress is as secure as your least secure plugin and it’s a sad, yet true fact!

How much time do your developers need in order to implement a simple form in their favorite programming language, without the hassles of creating a plugin? Because they simply do not need to do that!

If you can lower your resource usage this way, you can become more scalable. Keeping the backend and frontend separated usually means no downtime is needed for maintenance, so you can upgrade and customize your website without compromising performance.

With headless, you can hide your backend and go stealth! No one needs to know your login URL or your API endpoints. They can live on two separate servers or virtual machines. This enables the administrator to rest assured that their system is secure and protected against the millions of anonymous attacks happening each and every day. There are even some website offering headless CMS as a Service.

Integration with other systems
Another benefit of headless is easier integration of other systems, like the shopping cart or a product information system. It also means that it’s far easier to integrate new technologies when they emerge, without breaking the rest of your system.

How can you make your WordPress, Joomla or Drupal headless?
As long as your CMS comes with an API for fetching contents, you can host it anywhere that you want and use the API to access your contents. It doesn’t matter where you even host it! On a subdomain, a subfolder or even an IP address! You just need to login in the backend and input the content. The API integration between the backend and front end can do the rest. And yes, a Rest API is a perfect choice.

WordPress has a REST API out of the box. Drupal comes packaged with the RESTful Web Services module.

So in most cases you don’t need to worry about the API. You can even install and use some plugins to have extra flexibility in the backend.

Are there content management systems that are headless by default?
Yes, absolutely! And they are becoming a thing nowadays! Neither WordPress nor Drupal were built with the purpose of being headless, so you may be better off learning from an open source option. Here are some of the players:

If you need a self-hosted headless cms you can use:
Strapi.js, Directus, Craft CMS or dotCMS,..

If you are looking for a headless cms as a service, you can use:
Zesty.io, Contentful, GraphCMS, DotaCMS, Storyblok,..

Or you can just Google it! There are a ton of useful reviews out there.

The challenges of using a headless CMS
Traditional CMS architectures are ideal for blogs, personal sites, and very basic company websites. Because everything is all together, it is easy to develop, manage, and publish text-based content quickly. Design is also simplified within a traditional CMS platform, with built-in themes and templates and a front-end that can be edited and customized as needed.

Headless platforms lack web delivery layers like templating systems. Unlike traditional CMS architecture, which requires you to follow specific rules and use designated programming languages, a headless CMS gives developers complete control over how content is presented to the user. So that means that you cannot buy a template or a plugin on Envato market and kick-start your site! You need to hire a developer most of the times and stick to other template formats like html.

A headless CMS may also present formatting challenges, since you can’t always preview the content and get to know how it feels. Therefore, you have to take extra measures to anticipate how things will turn out on the frontend. You can put more codes in the frontend to show these draft contents to only a specific user.

While using headless architecture comes with some security advantages, you’ll have to set up permissions and user credentials to protect confidential content from non-authorized users, which can be tedious.

A headless CMS can impose high costs, if not done a right manner, and also loss of functionality. Ultimately, each organization have different requirements and would need to evaluate the strategy of using a headless CMS, because decoupling your CMS is something you should seriously consider.

What are the use cases for headless CMS
While a traditional coupled CMS architecture is great for simpler sites, it isn’t ideal for those that are more complex. A headless CMS can be an ideal choice for the following use cases:

• When your website and app are utilizing JavaScript frameworks like Reactjs, Vuejs or Angular or if you want to use Server Side Rendering.
• If you are going to publish your content across multiple delivery platform.
• If you are going to deliver content to an iOS or Android app from the same backend.
• If your user base is growing fast and you want to reduce your server costs.
• If you want to enrich product information on eCommerce sites
• If you are going to create a custom platform for your business and you don’t want to create the CMS part from the ground up, but a traditional CMS is going to impose too much rigidity onto your project

Conclusion
Do you really need headless? It really depends on your requirements. Using a headless CMS isn’t the best option for every web project, but you should at least familiarize yourself with the concept since they are becoming more and more popular in the content management ecosystem. Headless CMS is here to stay and will likely be the shape of things to come in the future.

The headless CMS concept is one born of the demands of the digital era and a business’s need to focus on engaging customers with personalized content via multiple channels at all stages of the customer journey.

Headless CMS architecture is a great solution to robust your team of developers, and can help you publish dynamic and innovative content to any type of platform or device, connected via IoT.

That’s it for now, lets us your opinion in the comments, if you like this video, don’t forget to subscribe on the Tech Debates Youtube Chanel for more content like this one

--

--