Astro
Content-focused web framework using Islands Architecture to ship zero JavaScript by default. Astro renders HTML at build time (SSG) or request time (SSR) with components from any UI framework (React, Vue, Svelte, Solid). Island components selectively hydrate only interactive parts. Optimized for content sites, documentation, blogs, and marketing pages.
Score Breakdown
⚙ Agent Friendliness
🔒 Security
No client-side JavaScript by default minimizes XSS attack surface. Environment variables with PUBLIC_ prefix are exposed to client. Server endpoints follow standard Node.js security model.
⚡ Reliability
Best When
You're building content-heavy sites where performance is critical and most content is static — blogs, docs, marketing, portfolios.
Avoid When
Your app is interaction-heavy with lots of client-side state — choose Next.js or SvelteKit for SPAs and dashboards.
Use Cases
- • Build high-performance content sites (blogs, docs, marketing) that ship minimal JavaScript with maximum Lighthouse scores
- • Use multiple UI frameworks (React AND Vue AND Svelte) in the same project via Astro's Islands Architecture
- • Generate documentation sites from Markdown/MDX content with built-in content collections and type-safe frontmatter
- • Build agent-accessible static sites with optional SSR API endpoints for dynamic functionality
- • Create performant e-commerce storefronts or landing pages where page speed directly impacts conversions
Not For
- • Highly interactive web applications (dashboards, SPAs) — Next.js or SvelteKit are better for client-heavy apps
- • Real-time features (WebSockets, live updates) — Astro's architecture optimizes for content, not real-time
- • Large-scale server-side rendering with complex session management — dedicated SSR frameworks handle this better
Interface
Authentication
Astro is a framework, not a service. Auth for Astro apps uses Lucia, Auth.js, or custom middleware. Astro itself requires no auth.
Pricing
Completely free and open source. Deploy anywhere: Vercel, Netlify, Cloudflare Pages, GitHub Pages, or self-hosted.
Agent Metadata
Known Gotchas
- ⚠ Island components need client: directive (client:load, client:idle, client:visible) to hydrate — components without directives render as static HTML with no interactivity
- ⚠ Astro components (.astro files) cannot use React hooks or Vue composables — only UI framework components can use their framework's reactive features
- ⚠ Content Collections require files in src/content/ with schema defined in src/content/config.ts — files outside this structure won't be type-safe
- ⚠ SSR mode requires an adapter (@astrojs/node, @astrojs/vercel, etc.) — forgetting to install the adapter causes silent build failures or wrong output
- ⚠ Astro's built-in fetch in .astro files runs at build time for SSG — agents generating data-fetching code must distinguish build-time vs runtime fetching
- ⚠ Image optimization via <Image> component requires explicit width/height or inferring from imports — remote images need domains allowlisted in astro.config.mjs
Alternatives
Full Evaluation Report
Detailed scoring breakdown, competitive positioning, security analysis, and improvement recommendations for Astro.
Scores are editorial opinions as of 2026-03-06.