Rebuilding My Personal Site with Astro
For years, my personal site was a simple Gatsby app. It did the job — a
single-page résumé with a sidebar, a /now page, and not much else. But Gatsby
started to feel heavy for what is fundamentally a static page with some text and
links. When I decided to bring back a blog, it felt like the right time to
rethink the whole thing.
Why Astro?
Astro ships zero JavaScript by default. For a site like mine — mostly static content — that’s exactly right. No client-side React hydrating a page that doesn’t need it.
The other big draw is Content Collections. Blog posts are just Markdown files in a directory, with a typed schema for frontmatter. No GraphQL queries, no transformer plugins, no config ceremony. You write Markdown, Astro builds pages.
What changed
- Framework: Gatsby 5 → Astro
- CSS: Vendored Bulma 0.7.1 (185KB!) → ~200 lines of custom CSS with dark mode
- Blog: Back from the dead, powered by Markdown and Content Collections
- JS shipped to browser: React runtime → essentially nothing
The content stayed the same — Technologies, Employment, Education, Activities,
the /now page. But it’s all cleaner now, with proper semantic HTML and a
layout that doesn’t depend on a CSS framework from 2018.
Writing with an AI pair
I rebuilt this site by pairing with GitHub Copilot in the terminal. I described what I wanted, it explored the old codebase, proposed the migration to Astro, and we built it together. It wrote the scaffolding, I steered the decisions. Not a bad workflow for a site refresh you’ve been putting off for years.
More posts to come — probably about software, maybe about music, definitely about hot sauce.