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.

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).