For years I ran this blog on a very old, outdated CMS. It had been unsupported for a long time, and I had zero interest in maintaining it. My only interest was writing about things I found important — not wrestling with infrastructure.
The Problem
At some point I didn't even have the mood to work with the CMS layout anymore. My workflow for publishing a new article had become absurd:
- Write the article in Markdown
- Paste it into an online Markdown-to-HTML converter
- Copy the resulting HTML into the CMS as raw HTML input
It worked, but it was painful. Then the cloud provider started charging significantly more for maintaining the outdated PHP versions the CMS required. That was the final push.
The Solution
Today I finally found the time to build my own solution. The requirements were simple:
- A container that statically serves the entire site
- Go's standard library as the web server — no frameworks, no dependencies
- Preserve all existing links from the old CMS
- Write new articles in plain Markdown
Three Hours of Compound Engineering
With my coding partner, I managed to get everything done in about three hours:
- Downloaded all old content from the legacy CMS
- Converted everything into the new Markdown-based format
- Built a Go application that compiles into a single static binary with all content embedded
- Fine-tuned the layout until it felt right
The result is what you're reading right now. No PHP, no database, no CMS admin panel. Just Markdown files and a Makefile building the container.
Still the markdown file has to follow dictated conventions.
Next step: Adding a "skill" so that I can just write thoughts and let the automation do the rest.