Make my blog small again

I hosted a Ghost blog for almost 10 years, it was a simple “Just a blogging platform”, and it’s now a serious business helping “content creators” to “Turn your audience into a business”. I am honestly tired of these kind of never ending “advancement”, as if my local little bakery must pivot so many times until it becomes a multinational corporation. Not only it’s no longer the simple blog I needed, I somehow find it more difficult than ever to write anything.

A personal website is supposed to be… personal, some early blogs are even password protected, that’s how personal a blog is supposed to be. I forget since when, though, it was no longer my little garden. As more people followed me, and the world started to optimise for SEO, blog is now a personal brand, a résumé for a great career path, as if I have to run my life like a business. In fact, I was told at work1 to spend some time writing my blog, “We want to recruit some cool programmers, can you write something, anything, maybe tell people we are hiring?”

People say every post has to have a big “Hero Image”, as it catches people’s eyes. We have to ensure a nice thumbnail preview for sharing on social networks, we have to add Share and Like buttons, Analytics, Hashtags, Email subscriptions! We need views, engagement, clicks. If this is a post on Substack, you should see a overlay modal here, “Discover more from me! Subscribe! Sign in!” If this is a post on Medium, you should see a Google dialog on the top-right corner, because tracking is important.

Whenever I have some kind of thoughts I want to blog about, it feels like as if I am going to make a public speech, an important announcement, a marketing press release, that I have to be careful not to write anything wrong, not making any mistake, as if I am walking through a minefield. Naturally, I know it very well, there’s nobody reading my text, but the setup and the environment is telling me to be careful, it’s like one should be quiet in a library even when there’s nobody else, because it’s a library. The blog was not a place for writing, it was a place for publishing. Except, if it’s that difficult, then I rather not write anything at all.

On the other hand, I was journaling, those were some super simple markdown files, they didn’t even have a date on it – The files’ creation date and last modified tell. I find it happier and easier to write that way, because there’s nothing. The only thing I need is plain text, everything else is distraction. Not only that I don’t need things, I actually need the emptiness. I am sitting in a room I intentionally keep it as empty as possible, there is a chair, a desk, a little speaker on the desk, that’s it. In the room there’s not even a cable. I don’t need air conditioning because the wind is flowing through the window comfortably. I don’t need to turn on the light because the sun is shining through the small garden next to me, projecting shadow of trees on the wall. The kind of wallpaper you only get if you have an empty room.

Empty wall with tree shadow

I’ve moved from Ghost to mdblog, a little tool I made – I don’t want to call it a platform. mdblog is a HTTP server, it serves static files, renders markdown files into HTML, generates an index and RSS of posts for any directory. That’s all it does, I am very careful not to add anything else, the biggest customisation one can do is probably setting a custom CSS file. It’s smol, it’s fast, nothing has been done for SEO or social network, in fact, nothing can be done. The only flexibility is the unlimited flexibility of text.

Static site generators are a bit “too much”. A common choice for programmers to write “simple” blog is to have a static site generator, but I don’t find them appealing. It’s usually considered “simple” because static files are easy to serve, but the generation step can be as complicated as any other blogging platform, Movable Type has a static mode, that doesn’t mean it’s simple and easy. Those trendy blogs usually consist of a Github repository, with CI setup to generate and deploy new HTML automatically. We all know CI pipelines are fragile, apt-get is not deterministic, npm can be left-padded, these are the concerns I don’t want to think about. I once saw someone’s blog repository consisted of Eslint, Prettier, Makefile, the commit history was mostly filled with automated Pull Requests from renovate, this is what I call distractions. I only want a single, stable, binary, on my own server. I don’t need a powerful system, because text is powerful.

Just like how I’ve gone from the bird site to my self-hosted Fediverse server, I wish this small garden gives me peace of mind.


That’s why my colleagues’ blog posts often end with a recruitment link.