Astro's hybrid output is what I actually wanted
astrotil
Spent a while picking between output: "static" and output: "server" in
Astro before realising output: "hybrid" exists and does the right thing:
everything is static by default, and any route that opts in with
export const prerender = false becomes SSR.
That means the blog and game pages ship as plain HTML on the CDN, while a single leaderboard endpoint stays dynamic on the Workers runtime. No configuration split, no second project. The opt-in flag is per-route — the mental model just collapses.