Astro
A framework for building fast content sites — blogs, marketing pages, docs. Astro ships zero JavaScript by default (islands architecture). Use React/Vue/Svelte components where you need interactivity, and the rest is static HTML. Perfect for content-focused sites.
Fred K. Schott · Created Astro in 2021
- Blogs, docs, marketing sites, portfolios.
- Content-heavy sites.
- When SEO and performance matter.
- Jamstack/static sites.
- Highly interactive apps (use Next.js/React).
- Real-time apps.
- When you need a full backend.
Definition
Astro is a static-first framework. It renders pages to HTML at build time (or SSR). Components (Astro, React, Vue, Svelte) render to static HTML. 'Islands' let you hydrate interactive components where needed. Zero JS by default. File-based routing, content collections, MDX support.
Why it exists
React/Vue ship the framework runtime to every user even for static content. Astro removes that — static HTML for content, JavaScript only where you need interactivity. Faster, lighter.
How it works
Write .astro files or React/Vue/Svelte components. Astro renders them to HTML at build time. For interactivity, mark components with client:* directives (islands) — only those hydrate. Content collections for markdown/MDX. Deploy static output to any host.
Scaling limits
Less suited for highly interactive apps (React/Next.js better). Island hydration adds complexity. Smaller ecosystem than React/Next.js.
Cost shape
Free and open source.
Alternatives
- Next.js (SSG) — More JS shipped, better for interactive apps.
- Hugo — Go-based, no JS framework integration.
- Eleventy — Simpler, less component-focused.
Failure modes
- Over-hydrating islands.
- Content collection complexity.
- Less suited for SPAs.