Shipping the site that ships the site

This site is the demo. Astro 5, Tailwind, MDX content, Azure Static Web Apps, GitHub Actions, and a generator script that makes blogging cost ~30 seconds of friction.

  • #site
  • #astro
  • #azure
  • #meta

Context

I wanted a personal site that is itself a credible demo of the kind of work I do, not a static brochure built once and then left to rot.

Observation

Three constraints made the whole thing easy:

  • Content is structured. Talks, demos, repos, testimonials and certifications live as YAML in the parent repo and are projected into the Astro content layer by a small Python exporter. Re-running the exporter republishes any redactions; the public site never sees customer names, internal codenames, or exact dollar figures.
  • Hand-authored MDX is additive, not a replacement. Notes (this page), case studies and service offerings are MDX files. They live alongside the generated JSON without touching it.
  • The deploy pipeline is boring. Push to main, GitHub Actions builds, Azure Static Web Apps hosts. Path-filtered so unrelated commits don’t trigger a redeploy. Lighthouse stays green.

What it means

Most “personal AI advisor” sites I see read like a static resume in a trench coat. This one tries to do better: live demos in the Lab section, real case studies under /case-studies, running thoughts here under /notes, and the open-source code behind all of it on GitHub.

If you want to see how a section was built, the answer is almost always: read the MDX next to it. The repo is the docs.

All notes · RSS