astro-islands
SkillMediaUse when adding interactivity to Astro pages via client:* directives or rendering dynamic server content with server:defer.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the astro-islands skill
What this skill tells your AI
The instructions your AI receives, as published by fusengine/agents in plugins/astro-expert/skills/astro-islands/SKILL.md and read by ahel’s review.
Also covers transition:persist for preserving component state across View Transitions, and prop serialization rules for data crossing the server/client boundary. Does not cover installing the underlying UI framework itself (astro-integrations) or Server Actions used inside islands (astro-actions) — those are separate skills.
Astro Islands Expert
Partial hydration architecture: zero JS by default, selective interactivity via directives.
Agent Workflow (MANDATORY)
Before ANY implementation, spawn 3 agents in parallel, one Agent call each with a name:
- fuse-ai-pilot:explore-codebase - Analyze existing components and hydration patterns
- fuse-ai-pilot:research-expert - Verify latest Islands docs via Context7/Exa
- mcp__context7__query-docs - Get client directive and server:defer examples
After implementation, run fuse-ai-pilot:sniper for validation.
Overview
When to Use
- Adding interactive React/Vue/Svelte/Solid components to Astro pages
- Deferring dynamic server content without blocking page load
- Persisting component state during View Transitions
- Optimizing Time to Interactive with lazy hydration
Why Islands Architecture
| Concept | Benefit |
|---|---|
| Zero JS by default | Maximum performance, minimal payload |
| Selective hydration | Only interactive components ship JS |
server:defer | Dynamic server content without SSR blocking |
client:visible | Lazy-load below-fold components |
transition:persist | State survives page navigation |
Client Directives
| Directive | When JS Loads | Use Case |
|---|---|---|
client:load | Immediately on page load | Critical interactive UI |
client:idle | After requestIdleCallback | Non-critical UI |
client:visible | When component enters viewport | Below-fold components |
client:media="(query)" | When media query matches | Responsive components |
client:only="framework" | Client-only, no SSR | Components using browser APIs |
Server Islands
server:defer renders the component on the server after the page loads:
- Uses
slot="fallback"for placeholder content - Ideal for personalized or auth-gated content
- Does not block initial page render
- Requires a server adapter
Reference Guide
| Need | Reference |
|---|---|
| Architecture overview | overview.md |
| Client directive details | client-directives.md |
| server:defer patterns | server-islands.md |
| transition:persist | transitions.md |
| View Transitions (complete) | view-transitions.md |
| Prop serialization rules | prop-serialization.md |
| Interactive component | templates/interactive-island.md |
| Server island with fallback | templates/server-island.md |
Best Practices
- Default to no directive — Ship zero JS unless interactivity is required
- Prefer
client:visible— Defer below-fold components automatically client:onlyfor browser APIs — localStorage, window, canvasserver:deferfor personalized content — Avatars, prices, auth statetransition:persist— Preserve media players or forms during navigation
Signals
- GitHub stars
- 25
- Forks
- 4
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
astro-islands- Source
- github.com/fusengine/agents