From harness-claude
Implements React Islands pattern to hydrate only interactive UI islands, leaving static content as HTML. For content-heavy pages in Astro, Next.js, or similar.
npx claudepluginhub intense-visions/harness-engineering --plugin harness-claudeThis skill uses the workspace's default tool permissions.
> Hydrate only interactive UI islands, leaving static content as HTML
Implements Astro Islands Architecture: ship zero JS by default, hydrate interactive components (React, Vue, Svelte) with client:* directives (load, idle, visible, media, only). Audits over-hydration.
Provides React patterns like compound components, render props, custom hooks, and HOCs for scalable frontend apps. Use for component design, state management, and best practices.
Guides implementation of modern React patterns: hooks, component composition, state management, performance optimizations, concurrent features. Use for building or refactoring components.
Share bugs, ideas, or general feedback.
Hydrate only interactive UI islands, leaving static content as HTML
'use client' directivesclient:load, client:idle, client:visible on components'use client' at the top of the component fileclient:visible (Astro) or lazy hydration for below-fold islands.// Astro example: only the interactive widget is hydrated
---
import StaticHeader from './StaticHeader.astro'; // no JS
import InteractiveSearch from './InteractiveSearch'; // React island
---
<StaticHeader />
<InteractiveSearch client:load />
<article>...static content...</article>
The islands pattern was popularized by Jason Miller (Preact creator) and Ethan Marcotte. The core insight: most web pages are "mostly static" — only specific regions need event handlers and state. Hydrating the entire page as a React app is wasteful.
Trade-offs:
React Server Components (RSC) vs islands:
https://patterns.dev/react/islands-architecture