---
name: astro
description: |
Astro web framework patterns for content-driven sites. Covers content collections with Zod schemas and loaders, island architecture with selective hydration directives, view transitions with ClientRouter, server-side and hybrid rendering modes, server islands, Astro DB with astro:db, middleware with onRequest, and framework integrations (React, Svelte, Vue).
Use when building content-driven websites, configuring island hydration strategies, setting up view transitions, choosing between static and server rendering, integrating UI framework components, defining content collection schemas, or adding middleware.
license: MIT
metadata:
author: oakoss
version: '1.0'
source: 'https://docs.astro.build'
user-invocable: false
---
# Astro
## Overview
Astro is an **all-in-one web framework** for building fast, content-focused websites. It uses an islands architecture that ships zero JavaScript by default, hydrating only interactive components on demand. Components from React, Svelte, Vue, Solid, and Preact can coexist in a single project.
**When to use:** Content-driven sites (blogs, docs, marketing), portfolios, e-commerce storefronts, any site where most pages are primarily static with isolated interactive regions.
**When NOT to use:** Highly interactive single-page applications (dashboards, real-time collaboration tools), apps requiring full client-side routing with shared global state across all components.
## Quick Reference
| Pattern | API / Directive | Key Points |
| ---------------------- | ------------------------------------------------- | ----------------------------------------------------- |
| Content collection | `defineCollection({ loader, schema })` | Zod schemas, glob/file loaders, type-safe queries |
| Query collection | `getCollection('blog')` | Returns typed array, supports filter callback |
| Single entry | `getEntry('blog', 'my-post')` | Fetch by collection name and entry ID |
| Island (load) | `