These are the notes from putting the Aulvem site together from zero on Astro — the choices that ended up sticking, the places I got stuck, and the rules I decided on before publishing the first post.
The short version
- Settled on Astro 5 (
output: "static") + MDX + Tailwind + Cloudflare Pages - Pagefind for search; Astro’s official integrations for sitemap and RSS were enough
- Adopting Content Collections from day one made it much easier to keep frontmatter consistent
Constraints
- A small editorial brand site I run on my own
- No need for flashy interactions — mostly text and images
- One operator; CI exists but manual deploys are realistic
The stack and why it stuck
Why Astro
- Outputs static HTML where that’s enough, and lets me drop in islands only where they’re needed
- MDX and Content Collections are first-class, not bolted on
- Fast builds and a clean fit with Cloudflare Pages
Why Tailwind
- Easy to retrofit a design — add utility classes only where they’re needed
- For a writing-first site, the utility-class overhead is negligible
Where I got stuck
Almost putting slug into the schema
slug is inferred by Astro from the file path, so it does not belong in the schema. Putting it there throws a type error, and I lost a while on it before realizing.
trailingSlash: "always" vs. internal links I’d already written
Once I set trailingSlash: "always", any internal link still written as /blog/foo needed a redirect. I just made it a rule on day one: every internal link is /.../ form.
Closing
- The shortcut for a personal site isn’t “build a fancy feature first” — it’s “decide the operating rules first”
- Frontmatter schema and URL canonicalization, locked in on day one, save you trouble later
- Operating tips for Content Collections will land in Build
One of the services launched through this site is Futari Kakeibo (Excel / Google Sheets edition).