| 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) | <Component client:load /> | Hydrate immediately on page load |
| Island (idle) | <Component client:idle /> | Hydrate when browser is idle |
| Island (visible) | <Component client:visible /> | Hydrate when component enters viewport |
| Island (media) | <Component client:media="(max-width: 768px)" /> | Hydrate on media query match |
| Island (client-only) | <Component client:only="react" /> | Skip SSR, render only on client |
| View transitions | <ClientRouter /> | Add to <head>, enables SPA-like navigation |
| Persist state | transition:persist | Maintain island state across navigations |
| Programmatic navigate | navigate(href) | Client-side navigation from scripts |
| Static output | output: 'static' | Pre-render all pages at build time (default) |
| Server output | output: 'server' | Server-render all pages on demand |
| Hybrid (opt-in SSR) | output: 'static' + per-page prerender = false | Static by default, opt individual pages into SSR |
| Hybrid (opt-in static) | output: 'server' + per-page prerender = true | SSR by default, opt individual pages into static |
| Server islands | <Component server:defer /> | Defer server rendering for dynamic content in static |
| Middleware | onRequest(context, next) | Runs before every route, chain with sequence() |
| Astro DB table | defineTable({ columns }) | Type-safe SQL with column definitions |
| Framework component | Import .jsx / .svelte / .vue | Auto-detected by file extension |
| Integration | astro add react | CLI to add framework adapters and tools |
| Render content | const { Content } = await entry.render() | Compile Markdown/MDX to component |
| Dynamic routes | getStaticPaths() + collection query | Generate pages from collection entries |
| API endpoint | export const GET: APIRoute | Server-rendered REST endpoints |
| Shared island state | nanostores | Reactive state across framework boundaries |
| Environment variables | import.meta.env.PUBLIC_* | PUBLIC_ prefix for client-accessible vars |
| Transition animation | transition:animate="slide" | initial, fade, slide, none |
| Prefetch links | data-astro-prefetch | hover, viewport, load, or false |
| Collection reference | reference('authors') | Type-safe cross-collection relations |
| Script re-execution | data-astro-rerun | Re-run <script> on every view transition navigation |
| Redirect | context.redirect(url, status) | Redirect from middleware or server pages |