New site
You might be looking at this post and thinking "What, again?" And that would be a fair question. The answer, of course, is "yes".
Why?
That's a simple question, with a long answer. I'm going to give that answer - mainly because I need a bunch of content to test the site with!
In the beginning, there was hand-crafted HTML. And that was fine, because I am a nerd, and we nerds love doing that kind of thing. I think I even had a couple of the little standard-of-the-day sized buttons that read "Made with Notepad" and "Best viewed in a web browser". Yes, I am that guy.


Anyway, over time it became too much like hard work to write pages by hand and upload them all the time, and things like Wordpress (not linking for moral reasons) had started to exist so I played with a few of them. Now it was all about dynamic sites, using server-side scripting languages like PHP and databases like MySQL with an Apache front end. Cool.
Time passes, and things change. Wordpress (both the core platform and millions of plugins) are full of exploitable vulnerabilities (to be fair, Wordpress itself is fairly solid these days). Apache still makes up a huge chunk of the internet, but newer server platforms like Caddy are smaller, faster, more flexible and secure by default.
The tipping point for me came when the founder of Wordpress started behaving like a complete tool. To each their own, but for me I didn't want to be relying on software being controlled by this guy. That coupled with the ongoing effort required to keep a server secure made me change direction to the new-fangled things known as static site generators, or SSGs.
On the surface, this all seemed great: export my existing content from the Wordpress back-end database, do some messing around and feed a bunch of files into an SSG. Upload the output to a web server, and done. No active content, no server side processing, just fast delivery of HTML to a client. However, I quickly ran into some stumbling blocks...
The big one is my own knowledge, or lack thereof. SSGs were typically based on Go, or Ruby, or JavaScript. I've never had any real exposure to these languages, so every time I tried to get one working the way I wanted to I was constantly fighting my lack of experience. I'd typically also need to install the relevant toolchain, which in some cases I didn't really want to do. I don't want to install Node, and pull random packages I don't understand from a package repo.
I did look at a couple of SSGs that were more my jam. Paul Hudson of Hacking With Swift released Ignite, an SSG built in Swift. I already use Swift for developing for macOS and iOS. I already have the toolchain installed. Seemed like an obvious solution! Ultimately, there were just a couple of little niggles that I couldn't get get past. I also looked at Raptor, which is an evolution of Ignite, which has some different little niggles. Both are great, just didn't quite do it for me.
At some point, can't remember when, I discovered SQLPage. Rather than writing HTML, you can build a web site purely from SQL queries. Yes, this meant going back to server side processing, but I could minimise the attack surface through careful infrastructure design, and by literally not having any internet-facing code that could modify content or execute random code or queries. It's super cool.
The obvious flaw here: I'm a hack when it comes to SQL! Traditionally this has been a bit of a barrier to me doing anything complex, but hell, it's 2026 and Claude is really good at reading the docs and writing SQL code for me. I spent a bunch of time working on some really cool things, like caching all my SmugMug albums to show them in-page - means photos are served from SmugMug's content network, and not my little baby server.
After all that, though, I've got back to a traditional SSG. Eleventy isn't too bad to deal with once you get the hang on it, without a massive overheard of learning JavaScript. Templating is pretty standardised using Nunjucks. I'm a hack when it comes to styling and CSS, but I've managed to cobble together something that I think looks okay.
Now it's just converting all the old content...