Goodbye WordPress: rebuilding the blog
After several years of running this blog on WordPress, I have now replaced it with a static site built with Eleventy. The two big reasons were hosting costs and to have something that feels more like me.
If you have visited the site before, you will notice that things look quite different around here. That is very much the point.
Why leave WordPress
WordPress has served me well and I have nothing bad to say about it as a platform. But for a small blog like this one, it started to feel like driving a truck to the mailbox.
The site was running on a Lightsail instance in AWS, which meant a virtual machine humming along all day, every day, just to serve a handful of static pages to the sites visitors. That is a few dollars every month for compute that mostly sits idle. On top of that comes the part nobody talks about when they recommend WordPress: the maintenance. Core updates, plugin updates, PHP versions, backups and the constant background noise of bots probing wp-login.php. None of it is difficult, but it is a recurring chore for the site. Now that I want to get into writing more frequently, I would like for my focus to stay on that and not putting effort into the negative sides that WordPress comes with.
A blog is text. Text does not need a database and an application server. It needs a place to live and a way to get there.
Getting my own style
The second reason was more personal. With WordPress you pick a theme, and no matter how much you adjust it, the site always ends up looking like, well, a WordPress theme. Mine never really felt like mine.
This time I designed the site from scratch. It is heavily inspired by the terminal, which felt fitting for a blog that is mostly about networking and automation. Monospace fonts in the navigation, a blinking cursor in the wordmark and headings that look like markdown. There is a light and a dark mode that follows your system preference, with a small toggle if you disagree with your operating system. The whole stylesheet is one hand-written CSS file. No frameworks, no build pipeline for the styling, nothing to update next year. It is a simple design, but it is my simple design.
The new stack
The site is built with Eleventy, a static site generator that gets out of the way. Posts are plain markdown files in a git repository. The templates are a handful of Nunjucks files. That is more or less it.
Hosting is an S3 bucket behind CloudFront, with a certificate from ACM. Deployment happens through GitHub Actions: every push to the main branch builds the site and syncs it to the bucket using OIDC, so there are no long-lived AWS keys stored anywhere. Publishing a post is now as simple as:
git add posts/2026-08-10-my-new-post.md
git commit -m "Add new post"
git push
About a minute later it is live. Drafts are just a draft: true line in the frontmatter, visible locally but excluded from the production build.
What it costs now
The old setup was a Lightsail instance billed every hour of every month. The new one is S3 storage measured in cents, CloudFront traffic that for a site this size stays within very little money, and a certificate that costs nothing. The GitHub Actions minutes are within the free tier. For a personal blog, the hosting bill has essentially gone from a subscription to a rounding error, lol.
And since the whole site is a git repository, the backup strategy is the same as for any other code I write.
alias publish="git push"