Why did I write a CMS in 2020
To build a CMS must be the least fashionable thing in tech this year. Probably even less than using MongoDB (no offense). And still, I found myself writing one.
Because of the same, old reasons that have inspired thousands before me in the ancient tradition of reinventing the wheel:
- I didn’t like anything out there.
- This way it was more fun.
No doubt about the second, but why didn’t I like any of the many existing content management systems out there? Let’s see:
As of today, if you want to publish your own content you have basically four options:
- Closed platforms like Medium. I love Medium and I truly enjoy publishing content here. The editor is great and the only template is simple and beautiful. My main problem with Medium is that (for now) you can’t use your own domain nor your own identity, so I always feel like I’m building someone else’s audience. On the other hand, they allow you to borrow theirs, which is great (and that’s why you’re reading this here!), but it’s not really an option if you need to customize your audience’s experience.
- If that’s your case you can use an open platform, like Wordpress.com or Blogger. I’d say this should be the best solution for most people. However, I don’t really like the options you’re given to customize your site: plugins and templates are usually huge and too complex, and I’m too lazy to learn another templating API or try to find a theme that is close enough to my idea. But as I said, this should be the way to go as long as you don’t need complete control and you’re comfortable dealing with templates and plugins.
- If you need more control the natural option would be self-hosted, traditional CMS software like Wordpress. You can use a managed server or set up your own and do decently well. Problems: if you use a managed server you’ll always be a bit behind (and you’ll never have actual full control, which kind of defeats the whole purpose); and if you set up your own thing, you’ll end up owning a web server server that will eventually become outdated and then hacked.
- If you need full control but you don’t want to deal with all the problems I’ve described so far you can also try a Jamstack-type site generators like Gatsby or Jekyll. I tend to agree with the philosophy…