web dev//framework//Astro

Astro is a frontend framework that generates static HTML at build time and ships no JavaScript by default, loading JS only where interactive *islands* are explicitly marked.


Astro is a frontend framework that generates static HTML at build time and ships no JavaScript by default, loading JS only where interactive islands are explicitly marked.

In this islands architecture most of the page is static HTML, and the interactive components (a search bar, a graph viewer, toggles) load their own JS independently. Astro is framework-agnostic: components can be React, Vue, Svelte or Solid, mixed in the same project.

It suits content-heavy sites such as blogs, docs and portfolios, because the HTML is ready on arrival with no wait for JS to render.

React with Vite works the other way. React sends a JS bundle to the browser and the DOM is built there: the initial HTML is empty and React mounts it on the client. Astro sends the HTML already assembled from the server, and the browser paints it directly without waiting for JS. Less JS means a faster load, and a page that crawlers and tools like WebFetch can read, since they do not execute JS (rendering).

Next.js is full-stack (frontend, backend and SSR), while Astro is frontend-only and static-first. For apps with a lot of interactivity (dashboards, editors), Next.js or React make more sense.

InfraPhysics (React and Vite) would be a natural candidate for Astro, being mostly static content with a few interactive islands (the Second Brain, the graph, search), but it works fine as it is.