Receber por email
← Voltar para o catálogo

astro-islands

Expert Astro Islands Architecture — client:load, client:idle, client:visible, client:media, client:only, server:defer (Server Islands), fallback slots, transition:persist, prop serialization. Use when adding interactivity to Astro pages or rendering dynamic server content.

15estrelas
Atualizado há 4 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add fusengine/agents

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/astro-islands/svg)](https://www.skillteca.com.br/skills/astro-islands)

Alerta por categoria

Receba novas skills de Escrita e Conteúdo toda segunda

1 email curto, só com as skills novas de Escrita e Conteúdo. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Astro Islands Expert

Partial hydration architecture: zero JS by default, selective interactivity via directives.

Agent Workflow (MANDATORY)

Before ANY implementation, use TeamCreate to spawn 3 agents:

  1. fuse-ai-pilot:explore-codebase - Analyze existing components and hydration patterns
  2. fuse-ai-pilot:research-expert - Verify latest Islands docs via Context7/Exa
  3. 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](references/overview.md) | | Client directive details | [client-directives.md](references/client-directives.md) | | server:defer patterns | [server-islands.md](references/server-islands.md) | | transition:persist | [transitions.md](references/transitions.md) | | View Transitions (complete) | [view-transitions.md](references/view-transitions.md) | | Prop serialization rules | [prop-serialization.md](references/prop-serialization.md) | | Interactive component | [templates/interactive-island.md](references/templates/interactive-island.md) | | Server island with fallback | [templates/server-island.md](references/templates/server-island.md) |

Best Practices

  1. Default to no directive — Ship zero JS unless interactivity is required
  2. Prefer client:visible — Defer below-fold components automatically
  3. client:only for browser APIs — localStorage, window, canvas
  4. server:defer for personalized content — Avatars, prices, auth state
  5. transition:persist — Preserve media players or forms during navigation
Compartilhar X LinkedIn