Astro is built on one idea carried further than anyone else has carried it: most pages do not need JavaScript, so do not ship any. Components render to HTML at build time, and interactivity is opted into per component — the islands architecture — with directives like client:visible that hydrate a widget only when it scrolls into view. The result is content sites that arrive as HTML and stay that way, which is why Astro has become the default for documentation, blogs, and marketing sites that were previously over-served by a full application framework. It is also framework-agnostic in a way its competitors are not: React, Vue, Svelte and Solid components run side by side in the same project, so a team can bring the components it already has. Astro 5 added the Content Layer, a single pipeline for pulling content from Markdown, a CMS, or an API, and Server Islands, which let a cached static page carry holes that render per request instead of forcing a choice between static and server-rendered. Astro 6, stable since March 2026, rebuilt the dev server on Vite’s Environment API so development runs the production runtime, and added first-class Fonts and Content Security Policy APIs. The honest limit is the same as the strength: for an application where most of the page is interactive, the islands model adds ceremony that Next.js, Nuxt or SvelteKit do not.