Colophon

I built this site myself using Hugo, a fast and flexible static site generator. It uses a theme called Ristretto. The site itself is hosted on Cloudflare Pages.

Previous incarnations of this site have used WordPress, Kirby, Pelican, a custom system I wrote in Python… I don’t remember the exact order, but at some point I switched from Hugo to Kirby and then back to Hugo. I’m happy with Hugo, but I’m also fond of experimenting, so I can’t guarantee what I’ll use in the future.

I designed the first version of this site’s theme many years ago. What you see today is its evolution over many years. Ristretto is the Hugo incarnation. The current theme uses Tailwind CSS for styling. JavaScript is used only when indispensable… you can go a long way with today’s modern CSS. The home page weighs only 160 KB and loads fast.

Until recently, I coded all changes to the theme by hand. Nowadays I use a coding agent. You need to develop the skill to do it efficiently, but once you do, there is no way back.

I keep all the content in Markdown (text) files to minimize lock-in. Each time I’ve changed blogging platforms, I’ve written scripts for migrating the posts’ frontmatter/metadata while preserving the content and the URLs (slugs) of the posts. Today you can do this in a fraction of the time using AI.

All the site’s content resides in a private GitHub repository. Each time I push a change from the local copy on my laptop, Cloudflare automatically regenerates the blog. Search is implemented using Pagefind. Each time the site is regenerated, Pagefind indexes all the content, generating a static search index. So searching, from the user’s perspective, is fast.