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.