Building This Site
I wanted a personal site that was fast, simple, and easy to update. I didn’t want to think about it much after the initial build. That ruled out most things.
I went with Astro because it generates static HTML and stays out of my way. There’s no client-side JavaScript unless I explicitly add it. Content lives in markdown files. The build is fast and the output is just files I can throw behind nginx.
Tailwind handles the styling. I like that I can keep the design consistent without maintaining a separate CSS architecture. The typography plugin does most of the heavy lifting for blog posts.
Everything runs in Docker because I don’t have Node installed on my machine and I don’t want to. The production build is a multi-stage Dockerfile that outputs to an nginx container. The dev setup mounts the source and runs the Astro dev server with hot reload. A small shell script wraps the common docker compose commands so I don’t have to remember them.
The whole thing is intentionally plain. No animations, no dark mode toggle, no JavaScript wizardry. Just text on a page that loads fast. I’ll add to it over time, but I’d rather start simple and grow it than over-build something I have to maintain.