Islands architecture explained: interactive where it matters, static everywhere else

Islands architecture ships a page as plain HTML and adds script only to the parts that need it. Why that makes sites fast on phones, and how it changes builds.

3 minread 755words last updated

The short answer

Islands architecture is a way of building web pages where the page itself is plain HTML and CSS, and only specific components, the islands, carry JavaScript. A search box, a contact form, an image carousel, a cart button: each is an island with its own small script and its own rule for when that script loads. Everything around them, the text, the headings, the images, the layout, ships without any script at all.

The result is a page that appears immediately on any device, with interactivity arriving where it is needed and nowhere else.

Diagram of a page wireframe: header, hero, text sections and footer are plain HTML and CSS without JavaScript. Two small islands, a search box and a contact form, load their own small script only when needed.
The page is static. Only the islands load script, each on its own terms.

Why it matters on a phone

A phone has to download, parse and run JavaScript before a script-rendered page becomes usable. On a mid-range device over mobile data, that step is the largest share of the wait. Sites that render everything with a JavaScript framework send the whole framework and the whole page’s logic to every visitor, including the visitor who came to read one article.

With islands, the browser gets HTML first and renders it. The visitor is reading before the first island’s script has arrived. When it does, it wakes up only that component. The total amount of script is a fraction of the framework-rendered equivalent, and none of it stands between the visitor and the content.

The loading rules

RuleWhen the island’s script loadsGood for
On loadAs soon as the page is readyNavigation that must respond immediately
When idleOnce the browser has nothing urgent to doAnything above the fold that is not critical
When visibleWhen the component scrolls into viewForms, carousels and widgets further down the page
On interactionOn the first click, tap or focusMenus, search boxes, anything that waits for the visitor
By screen sizeOnly on desktop, or only on mobileComponents that exist for one kind of device

A form at the bottom of a long page loads its script only when someone scrolls there. A search box loads when someone clicks it. The page never pays for interaction nobody uses.

How it changes the way a site is built

Islands force a question that framework-rendered sites skip: does this component need to be interactive at all? The honest answer for most of a business website is no. A services section, a case study, a pricing explanation, a footer: HTML and CSS, no script. The few components that truly need script get it, isolated and small.

That discipline has side effects beyond speed. Less script means fewer dependencies, fewer things to update and fewer things that can break. It also means the page works when a script fails or is blocked, because the content never depended on it.

Where it stops

Islands are for pages that are mostly content with some interaction. When most of a page depends on who is logged in and what they did, when state is shared across many components and changes constantly, the page has become an application, and an application framework is the better tool. We build both; the line is worth drawing early.

What this means for you

When you see a new website proposal, ask two questions: how much JavaScript does a visitor download to read a plain page, and which components are interactive and when do they load. A site built on islands answers “almost none” and has a short, deliberate list. That is what fast on phones looks like in practice.

Written by the CivSec S.M.A.R.T team

We build and run websites, software and AI systems for businesses. We write about what we see in that work, in plain language, and we update articles when things change.

Last checked . Spotted something outdated? Tell us.

Frequently asked questions

How is this different from a normal website with some JavaScript?

In principle it is that, done with discipline and tooling. The difference from the common approach is the default: many frameworks render the whole page with JavaScript and send all of it to every visitor. Islands flip the default to plain HTML and make each piece of script an explicit, isolated decision.

Does an island slow down the rest of the page?

No. Each island loads independently and the page does not wait for it. If the search box's script is slow or fails, the article text is already on screen and unaffected. That isolation is the point.

When does an island load?

You choose per island: immediately on page load, when the browser is idle, when it scrolls into view, when the visitor first interacts, or only on certain screen sizes. A contact form at the bottom of a page does not need its script until someone scrolls there.

Can a whole application be built as islands?

Small ones, yes. A large application with logins, roles and live data is better served by an application framework. Islands are for pages that are mostly content with some interaction, which describes a business website or storefront.

Sources

  1. Astro documentation: Islands architecture (accessed 2026-09-11)
  2. Google web.dev: Web Vitals (accessed 2026-09-11)