Astro as the Default
Why a writing site benefits from static-first architecture, deliberate islands, resilient HTML, and a JavaScript budget tied to user value.
Most of what a writing site does is not interactive. Someone opens a page, reads it, follows a link, and maybe searches for the next one. Astro makes that common path the default: pages arrive as HTML, and JavaScript has to argue its way in.
Static First
Every page here is readable before any client code wakes up. That keeps the site fast, keeps it working when a script fails, and keeps it portable. The build output is a folder of files that any host can serve.
Interactive code still has a place, but it has to attach to something a reader does: searching the archive, browsing a portfolio gallery, filtering topics, or changing the theme. Only search and the portfolio galleries turned out to need a framework. The rest is a few small scripts. The Vue islands note covers the test each island has to pass.
That baseline paid off somewhere I did not plan for. When I added a curl view of this site, the terminal text could come straight from the built HTML. The writing was already complete before any JavaScript ran, so there was very little to work around.
Content Shapes the UI
Notes are MDX, so the writing sits beside the components that help explain it: a diagram, a terminal capture, an illustration. That makes the site feel more like a notebook than a CMS form.
Content collections keep the metadata typed. A note with a missing description or an unfamiliar tag fails the build instead of quietly shipping.
Together, those choices let the site grow from a few notes into a durable archive without changing the underlying model. That is what makes Astro a default here, not just a starting point.