You’ve Heard of the Headless Horseman, But What About a Headless CMS?

Jun 11, 2018 | 4  min
author Bonnie Horner
FacebookTwitterLinkedIn

Our blog often explores topics related to digital marketing strategy, ranging from new social media tactics to email marketing to good web design. But rarely do we dig into the nuts and bolts of digital marketing: the code that all of this is built on. Today, my development friends, we’re talking a little more tech as we look at what a headless CMS (content management system) is and why it matters not only for developers but for all digital marketers.

What

What is a headless CMS? Imagine our applications (websites, mobile apps, etc.) are broken into two parts:

  1. The Client Side – the part user’s actually see
  2. The Server Side – where we store our data (code, content, images, etc.)

In a standard CMS, the server and the client sides are considered attached if the server handles rendering content to the client side. The server is in charge of managing the data and displaying it for the user to see.

When we remove the “head,” or decouple our application, we, essentially, break our application into two independent pieces. Now the server side only handles data management and the client side only handles displaying that data to the user. By separating these two pieces, our client side is no longer tied to the structure of our data. The client side just knows it needs data, as well as how to display it. How it gets that data doesn’t matter anymore.

Why

Now that we know we can separate our applications into two independent pieces, we can start thinking about these pieces a little differently. Let’s expand on those a bit.

Server side

In a decoupled environment, since our client isn’t being rendered by our server, we have to provide our data via an API. This API becomes responsible for allowing our client to retrieve/update/delete data from the server without having to be part of the server.

In steps the role of a headless CMS, which takes a large portion of the work by providing us with an interface for managing that content but still lets us keep the client side separate. The client side still talks to the server via an API, but a user can now log in and edit content through the CMS.

A great example of a headless CMS is a blog. Here, the role of the CMS is to allow the user to create, edit, or even delete blog posts and save that data to use later. So, essentially, we have all the power of a normal CMS, but we don’t have a way to show any of the data to our users just yet.

Client side

Not to fret, this is where the client side comes into play. Sticking to the same blog example, let’s say we want to display those posts on a website somewhere. Now that the client is separated from the server side, to retrieve the posts, we just have to make a request to the server and display that content for the user to view.

The blog is now a self-sustained component, independent of anything else in your ecosystem. The client side can always be updated or changed without affecting your server. You can expand on a basic HTML site by just adding in the component or you can build a full PWA (progressive web app) with all the bells and whistles.

Since the server and client sides are completely decoupled, clients aren’t limited to any one particular framework, language or even platform. By decoupling the two sides, the data can be pulled into a website, an Android or iOS app or even be read from a Google Home device. The possibilities are endless because your server is no longer tied up in a one-to-one relationship.

Why not?

So, we now know we can separate our applications into two main pieces and the strengths of doing so, but as with anything, there might be a better option, in certain situations.

In the case of a headless CMS, the server is already running a full CMS capable of serving data to the client. Usually, a CMS is chosen for the features/extensions it offers. By separating the client and server elements, the client is no longer able to utilize a lot of those features. Solutions that were already baked into the platform now have to be rebuilt. For example, you can’t just install that eCommerce plugin and start inserting products. The client side of that data still needs to be created if they’re decoupled.

Another issue occurs when you start extending the number of different clients talking to the same server. You might need the API to return a slightly altered version of the data if you’re on a website versus an app or an IoT device.

Each of these clients, also, has its own code base. Once you’ve expanded to a larger product line (apps, websites, etc.) that uses the same server, each of those code bases need to be maintained and sustained. Instead of managing a one-to-one relationship between your client and server sides, you now have a many-to-one relationship.

And honestly, sometimes you only need a single application. Having the ability for many applications to communicate to the same API is an extremely powerful tool to have. But if you only have one application using the API, the overhead of decoupling the client and server sides might be better spent elsewhere. Once an application is built, you still have the ability to decouple down the road since you aren’t locked into a coupled CMS forever.

At the end of the day, decoupling your server and client gives you much more flexibility to do what you need to do, but it does add overhead. That overhead is well worth it in certain situations, but might not be worth the gains in others. In the atmosphere of today’s information, we’re viewing the same data from different devices all day long. Look at Facebook for example; you open the website on your laptop and the app on your phone. You might even have your smart speaker remind you of an event you saw on Facebook. These are two completely different apps but it wouldn’t make sense for each app to have its own server. By decoupling your client and your server, you can have multiple clients that share the same server and the same information.

Updated: Apr 13, 2022

Fuel Your Growth: Pyxl’s Digital Services and AI Solutions

What's New

Latest trends and insights
Introduction to Integrating HubSpot and Generative AI Solutions
Feb 20, 2024 | 5  min

In the rapidly evolving technology landscape, the strategic integration of generative AI solutions with HubSpot’s comprehensive data platform stands out as a pivotal advancement for ...   Read more

author Pyxl Development
The Power of Custom Generative AI Solutions in eCommerce
Feb 21, 2024 | 2  min

The integration of generative AI into eCommerce represents a transformative shift in how online retail operates. These AI systems, capable of creating content, recommendations, and ...   Read more

author Pyxl Development
Understanding Artificial Intelligence: AI, Generative AI, and AI Assistants
Feb 20, 2024 | 3  min

In the realm of technology, artificial intelligence (AI) serves as a cornerstone, shaping innovations and redefining industries. This broad field encompasses various subsets, including AI, ...   Read more

author Pyxl Development

1033 Demonbreun

Suite 300

Nashville, TN 37203

Phone: 615-647-6792

© 2024 Pyxl, Inc. All rights reserved. | Privacy Policy