Jotting down what I've learnt. - Hong C.
Programming

The Dilemma Between Headless CMS and Non-Headless CMS

What Is CMS

CMS – Content management system, basically a system to manage a website, WordPress is the most well-known one.

Why not WordPress

I don’t want to use WordPress because I don’t like the UI development experience. I’d prefer the coding way to do it. However, I like the simplicity of writing blog posts with it and how powerful it can be with all the plugins. But if you don’t need a lot of things, a simple free static site is all you need, $9 USD a year without the need for a server.

Now throw in an open source CMS and you’re good to go.

Finding the CMS

I’ve been hopping around a few different CMS such as Tina, Netlify, Sanity in the past few months.

The CMS I’m using right now is Tina, I think it’s alright. But the template that I used with Astro has some issues here and there. Not really a smooth sail, but at least, it is working.

Essentially, I just wanted a simple static site blog. I was using Netlify (Decap) with my 11ty site but wanted to try something new, so I’m now using Astro with Tina to experience it.

What I wish I knew

As I was looking into EVERY CMS people recommended on Reddit, I came across Sanity and Payload.

I wish I knew the difference between a headless CMS and a non-headless.

Headless CMS VS non-headless CMS

What Sanity and Payload do differently is that they are headless.

Headless CMS means the content (e.g. blog posts, pages) is separated from your front-end. The data is stored on a server, either self-hosted or hosted on their cloud. And your front-end just calls API to retrieve those data in JSON format.

With head CMS like the one I’ve used – Netlify or Tina CMS are working without a server. The "admin" system just shows you your website’s data and makes changes to them directly, then rebuilds the whole project for production. Also, the blog posts are written in markdowns, so whenever you wrote a new post, there’s a new .md file in your source folder.

So one with a server, one without. One is arguably using JSON, and the other one using Markdown.

And of course, the one without a server is easier to set up and has a lower cost to run in most cases.

What I don’t understand

There are just so many CMS out there, I’ve already omitted a ton. Each works a bit differently but the same for the most part.

I can see why people just go to WordPress. It has a long history, everyone knows how to use it, and it is powerful and scalable, whether you like it or not.

For alternatives, Sanity is nice because it has a generous free tier without hosting your own backend. For ease of use, maybe Netlify and Tina would do. But when you want to scale, Sanity seems like a better option. Or you can circle back to WordPress.

However, what I don’t understand is whether it is headless or not, markdown or not, how does that matter in the long-term?

Presumably, a self-host headless CMS backend can work a long way, there’s no vendor lock-in. But you still need to conform yourself to use one’s headless CMS system to store and retrieve the data.

While Markdown on the other hand basically works in every non-headless CMS. Just that you might need to store thousands of markdown files on your site if not more, that doesn’t seem like it’s a long-term solution.

Conclusion

So, I don’t care now.

Just use what you like, and wait until the blog post reaches tens of thousands. By then I should be making some money to hire a developer to do the migration to a fancy new CMS at that time. Don’t really want to stress about it.

Share:

Article written by:

Hong C.

Passionate in programming, music, languages, and learning new things.

Currently working on: ZenTube - decluttered: iOS YouTube app

Follow me on: Bluesky

Personal website: HongCT.net

Leave a Reply

Your email address will not be published. Required fields are marked *

back to top