You don’t always need a CMS

I'm a full-stack developer from South Africa 🇿🇦. I love writing about JavaScript, HTML and CSS.
Search for a command to run...

I'm a full-stack developer from South Africa 🇿🇦. I love writing about JavaScript, HTML and CSS.
100% agree!
We used a static site builder for Codename One (JBake) and it had its issues. But worked well overall. Hosting was easy, everything worked. The one major drawback was the commenting system which had issues. I do believe there's a simple solution for that too...
Our marketing guy really wanted wordpress so we migrated to it as it's the "industry standard". Huge mistake. So many problems. So much overhead. Every plugin is a nightmare and we don't get any benefit. We thought we'd at least enjoy WooCommerce or similar plugins... Nope. Couldn't get it to work properly with our flow. The one benefit is the SEO tools, but even those aren't as important. There are other alternatives we could have used.
WordPress tends to do that indeed, all fun and games at first, oh we can simply install these 100x plugins.
Couple weeks later half of them are injected with virus software, break your layout of just never get updated.
Believe me, WordPress is a great system, but it comes with some hefty drawbacks.
Thanks for responding to this article Shai, appreciate it 🙌
Most of you know me for my consistency, a golden arrow in my blog series. I've written 1000 articles in 1008 days! Almost an article a day, and my honeymoon was the only holiday I ever took. I'm super proud of this achievement; it has been a fantasti...

It's not the first time I'll be talking about community. I think it's an essential aspect of any successful tool. This shows in my previous explorations of Astro, Medusa, and now Vendure as well. All these products thrive in a super open, welcoming, ...

The cool part about Vendure is how easy it is to set up and how abstract each layer is. Basically, we get the following elements: External database Server Worker Admin UI Frontend While this is amazing, it also brings a bit of complexity when it co...

The previous article looked at customizing Vendure on a data and process level. In this article, we'll look at customizing emails, as they are often a big part of a webshop system. We'll be looking at two different layers of customization for customi...

Even though Vendure is a pretty significant project out of the box, in some cases, we might want to go in and modify some elements to work to our specific use case. In this article, I'll take a high-level look at some elements we can customize within...

When it comes to websites, blogs, and whatnot, we often expect to find a CMS power these systems.
I get a lot of questions about what CMS powers my blog. And I'll explain that while telling you why you don't always need a CMS.
Let's first take a look at what a CMS is. It stands for "Content Management System", and as the name implies, it can be used to manage the content for a website.
Some famous CMSs are WordPress, Contentful, Wix, Shopify, etc.
There is a big rise of "headless" CMS, which means a CMS that serves as an API. You have this system in place, and your website calls this API to retrieve the content.
CMSs are great for people who want to edit content and don't particularly know what to do with markdown, uploading files to a server, etc.
So when building websites for clients, it's often an excellent solution to pick a CMS that works for them.
I run my blog on a low-tech solution. It has no CMS, but plain markdown files are parsed to plain HTML and uploaded to a server.
However, this is automated, so I don't have to do that physically, but there is still no content management system to alter the content.
So how does this work, you ask?
I open my project in my IDE of choice (Visual Studio Code, or WebStorm) and start changing my markdown files. Either you edit the existing ones or create new ones for new blog posts.
Once I'm done, I push the changes to my git branch, which automatically triggers a GitHub action.
This GitHub action starts the build command on my Eleventy project (soon to be Astro), which converts all these markdown to HTML output. Once this process is done, the HTML files get placed in a "static" branch.
Which trigger Cloudflare pages to pull the latest changes from this branch. Cloudflare will do a git pull on this branch, and voila, the new changes are online!
This all happens in about a minute or so.
And for me, that's the main reason I don't need a CMS. It can be such an over-engineered solution.
I like to write content, markdown is the easiest way to write anyway, so I prefer it.
And once the content is written, I don't want to hassle with logging in to a system, copy-pasting the content and pressing publish.
(Although this is roughly the same amount of time)
Another downside to these systems is that they need upkeep. The CMS gets a new version, and you need to update it. Something goes wrong, and you won't be able to push new content. And worse of all, they can get hacked, meaning your website could be at risk.
Not saying it's impossible, but a static website is harder to hack. You would either need to hack my GitHub repo or my Cloudflare account, which are quite complex challenges.
I don't want to hate on CMS. They are a fantastic system that should be used.
But if you are a developer, consider if you need it? Perhaps you can make your life easier, but going low-tech as well.
Thank you for reading my blog. Feel free to subscribe to my email newsletter and connect on Facebook or Twitter