This site is the first real thing running on top of a small technology-operations setup I’ve been putting together — tracked separately in a private operations repo alongside this one. Writing down the decisions here, partly so I remember why I made them.

Why Astro

I wanted a personal site and blog that ships plain HTML/CSS with no client-side framework tax, has first-class markdown content collections, and gets out of the way. Astro fits that directly — static output by default, islands only if I actually need interactivity later, and a content layer that gives me typed frontmatter for blog posts without reaching for a CMS.

Why plain CSS, no Tailwind

The goal was a minimalist theme: system fonts, a single accent color, generous whitespace, automatic light/dark via prefers-color-scheme, no card chrome or gradients. That’s a small enough surface that a utility framework would add more indirection than it saves — one global.css with a handful of custom properties does the job.

Deployment

The project is deployed to infrastructure managed by an OpenTofu stack managed in a separate repository. The infrastructure involved is an AWS CloudFront distribution backed by a secured S3 bucket. This project deploys to the bucket using a Github Action.