How this site is built
A quick colophon, since “how I built this” is fair game for a site like this.
- Framework: Astro — content-first, ships almost no JavaScript, so pages are fast by default.
- Content: Markdown/MDX in the git repo (migrated off a CMS), with typed frontmatter validated at build time via content collections. Posts and case studies live next to the code.
- Styling: hand-written CSS with a small design-token system; light/dark via
data-theme. - Hosting: DigitalOcean App Platform,
auto-deploying on every push to
main. DNS + HTTPS are managed in the same account. - Machine-readable extras:
Person/BlogPostingJSON-LD, an RSS feed, a plain-text résumé, and an llms.txt — plus a Markdown version of every post (add.mdto any post URL).
The whole thing is intentionally boring to maintain: write a Markdown file, push, done.