September 17, 2026
Building a Static Archive with Astro
How pre-rendered pages, typed content, and a little Supabase keep this vault fast and cheap.
- astro
- supabase
- static

An archive mostly reads. That makes it a great fit for static generation: the pages are built once, served from an edge cache, and cost almost nothing.
The shape
- Astro pre-renders every route at build time.
- Typed content collections keep frontmatter honest.
- Supabase stores the PDFs and their metadata.
Why not a full server
There is no login, no cart, no per-user state. A server would only add latency and a bill. The one dynamic corner — the academic explorer — is a single island that talks straight to Supabase.
const { data } = await supabase
.from("academic_resources")
.select("*")
.order("year", { ascending: false });
The result
Nine static pages, a handful of tiny islands, and a build that finishes in under two seconds.