Islands Architecture
Rendering a page as static HTML with small independently interactive regions.
Islands architecture renders a page as static HTML and hydrates only the specific regions that need interactivity — each an independent "island" with its own script, its own state, and its own loading strategy. The rest of the page never becomes a JavaScript concern at all.
The gain is that the cost of interactivity is paid per island rather than per page. A marketing page with one interactive chart ships the chart's code, not a framework instance for the whole document. Islands can also be scheduled: load immediately for something above the fold and required for first interaction, defer until visible for something further down, skip server rendering entirely for something that cannot run on the server.
The trade is coordination. Islands are isolated by design, so sharing state between two of them requires an explicit channel — a store, a custom event on the window, a URL parameter — rather than the ordinary prop passing available inside a single tree. Designing so that islands rarely need to talk is usually better than building the channel.
The pattern is most associated with content-first site frameworks, but the underlying idea — pay for interactivity where it is used — is the same one behind React Server Components and every serious Performance Budget.
See also5
Hand-picked in the note itself — the neighbours worth reading next.
Hydration
Attaching client-side behaviour to server-rendered markup without rebuilding it.
Web Platform12 connections
Static Site Generation
Rendering every page to a file at build time, so serving is just handing over bytes.
Web Platform12 connections
Progressive Enhancement
Building so the core experience works without scripts, with richer behaviour layered on top.
Web Platform14 connections
Lazy Loading
Deferring the fetch of a resource until it is needed, or until the browser is idle.
Web Platform12 connections
Server-Side Rendering
Producing a page's HTML on the server so the first response is already content.
Web Platform18 connections
Related2
Nearby in the graph rather than deliberately chosen. Looser, sometimes surprising.
Linked from13
Notes elsewhere in the wiki that reach for this one.
- Client-Server BoundaryWeb Platform
The line in an application where execution moves from the server to the browser.
- Code SplittingWeb Platform
Dividing an application bundle so a page downloads only the code it needs.
- Critical Rendering PathWeb Platform
The sequence of steps between receiving HTML and painting pixels, and everything that blocks it.
- HydrationWeb Platform
Attaching client-side behaviour to server-rendered markup without rebuilding it.
- Incremental Static RegenerationWeb Platform
Serving a cached static page while regenerating it in the background after a chosen interval.
- Lazy LoadingWeb Platform
Deferring the fetch of a resource until it is needed, or until the browser is idle.
- Performance BudgetWeb Platform
A committed numeric ceiling on a page's cost, enforced automatically.
- Progressive EnhancementWeb Platform
Building so the core experience works without scripts, with richer behaviour layered on top.
- React Server ComponentsWeb Platform
Components that execute only on the server and never ship their code to the browser.
- Search Engine OptimizationData & Content
Making content discoverable through search, most of which is ordinary quality work.
- Server-Side RenderingWeb Platform
Producing a page's HTML on the server so the first response is already content.
- Static Site GenerationWeb Platform
Rendering every page to a file at build time, so serving is just handing over bytes.
- Streaming ResponseNetworks & Distribution
Delivering a response incrementally as it is produced rather than all at once when complete.