Astro islands vs full‑app hydration
Astro’s island architecture lets you ship zero client JavaScript by default, hydrating only interactive components. This is ideal when your page is mostly static content with a few interactive widgets (nav, theme toggle, newsletter form).
When to prefer islands
- Clear separation between content and interaction.
- Strict Core Web Vitals budgets (LCP/INP) and low-end device support.
- Server-rendered data that doesn’t need client state management.
When a full app makes sense
- Highly interactive SPA flows (dashboards, complex editors).
- Heavy client-side state shared across many views.
Practical tips
- Hydrate on visibility/idle where appropriate (
client:visible,client:idle). - Use route-level code splitting and analyze bundles.
- Prefer SSR + cache for data fetches; avoid duplicating fetches on client.