Headless CMS Is Killing the Buy vs. Build Decision
contentstack.com
contentstack.com
A Headless CMS is a GUI that simply lets nontechnical people manage content in a database (as opposed to traditional WordPress, which included front-end templating logic). These aren't super new but they are good. They're extra good in a world where you're increasingly likely to have multiple front-ends for a single application.
I can't help but to think back on my experiences, that's going to make a terrible program.
Edit: The original version of my comment which this poster was replying to, said something along the lines of "a GUI that lets nontechnical people manage a database", which was ambiguous.
For example, in the old way of doing things you might use Wordpress to host your corporate blog. But what if you want to put that content into an email too? Or an app page?
In the headless-CMS world, you write the content and store it in the headless-CMS DB. Then any client that wants to render it (your blog site, your webapp, the backend server that's sending email messages, etc) can pull the latest version of a particular piece of content, and render it.
A good example use-case is using something like https://www.gatsbyjs.org/docs/headless-cms/ to render a static site, based on dynamic content stored in the headless CMS.
I'd used systems like this at every game company I've worked for to allow writers, game designers, and translators work on content without having an engineer in their dev loop.
But I’m weird like that. :)
This is exactly what a headless CMS is not.
A headless CMS is a content management system served through an API.
Thus, legacy render-based CMS like Wordpress / Joomla where the database is completely tied to framework will decrease because of how heavy, poorly flexible and competitive they are from every point of view.
It’s also important to note that your CMS isn’t bound to any render-full GUI like WordPress but instead can be managed from anywhere as long as you have the APIs for it.
With serverless database having exploded in popularity over the past 5 years it makes 0 sense to use any of the solutions like those.
Takes Firestore/DynamoDB /Cosmos, add one collection named « Article » and you have a rudimentary CMS to store articles with a fully operational CRUD served over HTTP. Works anywhere and will cost you 0$ once it’s cached with your favorite CDN.
Did you really read the article or did you just commented assuming what was in it ?
That phrase doesn't make any sense.
> legacy render-based CMS like Wordpress / Joomla where the database is completely tied to framework will decrease
That's exactly what I said.
> It’s also important to note that your CMS isn’t bound to any render-full GUI like WordPress but instead can be managed from anywhere as long as you have the APIs for it.
I think you may be getting the front-end GUI and back-end GUI mixed up. A headless CMS omits the front-end GUI, but includes a back-end (content management) GUI. It admittedly also includes a light CRUD API over the database, so it's slightly more than I initially said, but not much.
Here's a more in-depth explanation. Maybe this will clear things up for you: https://css-tricks.com/what-is-a-headless-cms/
Postlight has a pretty cool WordPress/React starter kit https://postlight.com/labs/wordpress-react-starter-kit
Making your content work on a watch, and on nonexistent AR glasses, probably isn't a major priority yet.
Headless = DB/content is separated by an API from the display/front-end/output and possibly a data entry-UI
The benefit: you can swap front-end and data entry UI to your liking and have no lock-in.
Added bonus: separating by an API forces cleaner code and more documentation
Comparing it to wordpress (ignoring how it can possibly be used headless nowadays too): If wordpress doesn't do the trick for you anymore you have to migrate all your data, rebuild the front-end, teach staff a new UI for data entry and all that possibly just for something like a bit more performance.
For many organizations, a headless CMS are going to be more and more of a requirement, as more content is delivered to non-web or and non-mobile contexts. Some examples:
1. Shipping content into voice or chat bots.
2. Shipping content to embedded devices like touch screens on home appliances or factory machines.
Going beyond the separation of the data store and the presentation layer: A lot of people haven't yet felt the pain of using traditional relational data for these nontraditional channels. In voice and chat, for example, a knowledge graph is much more helpful than a bunch of relational data (or at least alongside relational data).
On the flip side of this all: my wife runs a blog, and I doubt she'll ever need more than Wordpress.
So, as usually, pick the right tool for the problem.
Haha. Wow. I didn't know it was already time for another anti-relational hype cycle.
It's similar to how data warehouses aren't going away, but a lot of companies aren't trying to shoehorn _all_ their data star schemas.
So if "relational databases aren't for everything" is hype, sign me up?
The build vs buy decision is still straight forward. Does the headless CMS solution I'm buying provide all of the features my project will need with room to grow? Yes? Cool, why bother building it. No? Looks like I'm building my own on a "reliable framework" (tm) already used by hundreds of thousands of sites.
What this article is really saying is that the web CMS is going away, leaving content CMS's with web API's as the king. What you're saying is that Web CMS's are morphing into content CMS's.
Which is great, but I don't really see the point of the article. None of this is really new.
Just to name a few open source headless CMSs. There are a lot more where they come from. And you can always add a JSON or Graphql module to your wordpress, drupal, etc.
[0] https://strapi.io/ [1] https://getcockpit.com/ [2] https://directus.io/ [3] https://ghost.org/
> And you can always add a JSON or Graphql module to your wordpress, drupal, etc.
That’s a great point, especially for migrating. I’ve worked where we had a huge nearly unmaintainable Drupal instance and it could’ve probably saved us a lot of time to just jam a GraphQL API on-top instead of trying to synchronize everything to another separate database. (Many lessons learned from that experience.)
My biggest gripe with most CMSes is how they handle organization (tags, categories, hierarchies...) as it always seems to come off as too flexible in some ways and not enough in others. Oh, and scaling, but at least you can always cache everything.
A part as the usual CMS, but also to drive a portion of a mobile app, and in that case its using essentially the headless part.
Since you have used it, any caveats I should be aware?
Thanks.
I think for bigger, more complicated sites, it is probably still lagging behind the old guard in raw features. But, on the other hand, it is a breath of fresh air for what it does do. So, if it supports the features you need, it seems like a solid choice to me.
No, they don't. You want to sell it, which is not the same thing.
There is a constant industry need to change CMS and app configuration without pushing code, this is a big thing that Headless can't yet manage well without a ton of extra development work, and with that you're practically building the same solution as a CMS from scratch. There are always different use cases for each scenario/solution, and as long as vendor supplied solutions are around like ServiceNow, PowerBI & SharePoint, traditional, and especially Open-Source CMS solutions aren't going anywhere.
Headless also requires a lot of work to account for unstructured data, which should, as a best practice, be fixed in your data source. Too much can slip through the test/fix gate when a bunch of customization is done to fix or re-format data at the front-end layer. Big problems occur when multiple front ends are independently displaying from one data source whenever someone tries to reformat, change, or fix data on the back-end...
As a promotional practice, trust worthy company should refrain from disparaging viable alternative methods of implementation, they should stick to promotion of their own method and speak more-so to the benefits of a well thought out solution rather than saying that competing methods are "dying" IMO.
Now, the thing that they gloss over, and the actual hard part of all of this, is not the headless bit, its getting your content in order.
Organising your content so you can syndicate it to people that want it is really, really hard at scale. Its almost never a technical challenge, it a question of selling and making sure people put the right tags on the right content.
At "Large Financial News company" The basic idea was there, the execution was lacking though:
GUI(in fat client and web) -> content database -> frontends
When stuff was being redesigned, most of the effort was in the front end. The content already had an API, it was polluted by politics and idiot architects, but it was there.
For instance, Chrome not too long ago released the capability to run headless. Headless servers are hardware servers without a physical monitor, keyboard or mouse (i.e. you typically interact with it via ssh or RDP). Microsoft has also used the term for windows servers and embedded devices for years.
However as you've highlighted, its not whats going on here.
I will accept:
o Content-as-a-service
o multi-play publishing
o API driven syndication
o multiplatform publishing
but "headless"? Its a half arsed term to supposedly differentiate them in a crowded marketplace.
If I am going to use a headless CMS, I'd probably just rather write my own program completely. Nothing is worse than being in the 9th inning and realizing that you have to do a major infrastructure overhaul because the program your using doesn't natively support a feature.
Actually, what I really need is a stable, portable file format, since editors will continually bloat up and die in the natural life cycle of software projects.
Also, article is more an advertisement than anything educational. And here I am making the situation slightly worse.
- Cross platform
- Best performance
- Ultimate security - no database or server code
- Use awesome development tools for funky stuff
- Easy to migrate to another thing
- Easy to experiment with in development settings
- Have small services for dynamic stuff that can be sepparatelly developed (comments, profiles etc.)
Its good to see era of Joomla and friends is coming to an end.