Moving back to a dynamic website
Published on
For the past few weeks I’ve been working on converting chameth.com from a static site into a dynamically generated site backed by a database. This is the exact opposite process to one I went through maybe a decade ago. So why the change, and what’s different?
I’d actually been toying with the idea of switching for a while. Every now and then I’d have a thought along the lines of “it would be nice if I could add X to my website… but how would that work with static site generation?”. Comments, private drafts, dynamic themes based on the date, and many more little bits and pieces. You can definitely do them with a static site generator, but it felt like going against the grain. The beauty of a static site is that it’s… well… static. Shoehorning in dynamic features takes away a lot of the benefits, or leads to having lots of weird seams where you join the static and dynamic pieces together.
A bunch of things have changed since I originally switched to a static site generator. In no particular order:
- The advent of containers, and managing them with config like in
docker-compose, means standing up and managing a database for the site is trivial. - I’ve learnt and really like Golang, which makes writing HTTP-based servers a breeze, and makes it easy to deploy the site as a single binary (in a container).
- LLM agents are good enough that I can have it do all the boring CRUD work needed to actually make a dynamic site work (so many admin functions…).
The code is open source if you’re interested. I’ve made no effort to make it generally useful outside of this website, but it might serve as a useful reference if you want to do something similar. Now that’s done, I can safely procrastinate on all those dynamic features I had planned!
Have thoughts that transcend nodding? Send me a message!
Related posts
Monthly Meanderings: January 2026
Welcome to the second edition of my monthly meanderings. For a bit of context, you can check out the introduction to the first edition. Website updates It’s been a pretty busy month for chameth.com. Three blog posts: The Meaning of Life — an entry into the IndieWeb carnival where I mostly review a book on Stoicism — Surge Protectors: Marketing vs Reality which is a dump of a rese...
Monthly Meanderings: December 2025
For a while I’ve been idly thinking about a way to get smaller bits of content onto my website without it being too annoying for me, or too hard to consume. Things like interesting links, small project updates, and so on. I didn’t immediately come up with anything I was happy with, so just sat on it. Ignoring the problem seems to work surprisingly well for things like this. I’d b...
Automatic reverse proxying with Docker and nginx
Over the past few weeks I’ve gradually been migrating services from running in LXC containers to Docker containers. It takes a while to get into the right mindset for Docker - thinking of containers as basically immutable - especially when you’re coming from a background of running things without containers, or in “full” VM-like containers. Once you’ve got your head a...
For the past few weeks I've been working on converting chameth.com from a static site into a dynamically generated site backed by a database. This is the exact opposite process to one I went through m...