Stack
- Astro 6.3
- Static framework
- Preact 10
- One interactive island (the contact form)
- Cloudflare Workers edge runtime
- Host - prerendered HTML
- Latin Modern Roman Computer Modern revival
- Typeface - the LaTeX-preprint reference
- Bun 1.3
- Package manager and script runner
Decisions
-
Astro + Cloudflare Workers, not Next.js + Vercel
Prerender everything. Static assets and the Worker share a single deploy. The site costs nothing at idle and serves HTML from the edge cache.
-
Preact, not React
One interactive component on this site. Preact ships ~3 kB of runtime; React would ship ~45 kB. The DX is identical - JSX, hooks, the rest. The choice is invisible to a user; it shows up as a faster first paint.
-
Per-page prerender by default
Every page prerenders. Static where it can be - the configuration mirrors the architecture, not the other way around.