---
title: "Astro 1.0: islands for content-first sites."
date: 2022-08-30
url: https://remiam.co.uk/notes/astro-1-islands-of-interactivity
tags: [Astro, Web Frameworks, Performance]
read_time_minutes: 6
description: "Astro 1.0 launches in August 2022 — what islands of interactivity actually solve, and when to reach for Astro instead of Nuxt or Next."
---

# Astro 1.0: islands for content-first sites.

*Published 2022-08-30 · 6 min read · by Liam (Remiam)*

Astro hit 1.0 this week. It is unusual in a way most frameworks aren't: it does less by default, and that turns out to be the point.

Astro shipped 1.0 in August. We've been watching the project since its 'partial hydration' RFC last year, and it's grown into something that quietly solves a real problem — the kind of problem most frameworks have stopped trying to solve.

## What Astro does differently

- Ship zero JavaScript by default. Pages render to HTML, and only the components you explicitly mark as interactive get hydrated.
- Mix frameworks per-island. Vue here, React there, Svelte for that one widget — it works.
- Built around content first, interactivity second. The mental model is 'static page with islands', not 'app with rendered pages'.

## What an Astro page looks like

```astro src/pages/index.astro
---
// This runs at build time, not in the browser
import Newsletter from '../components/Newsletter.vue'
const posts = await fetch('/api/posts').then(r => r.json())
---

<html>
  <body>
    <h1>Notes</h1>
    <ul>
      {posts.map(p => <li><a href={p.url}>{p.title}</a></li>)}
    </ul>

    {/* This Vue component ships JS only when it scrolls into view */}
    <Newsletter client:visible />
  </body>
</html>
```

## When to reach for Astro

- Marketing sites that ship a lot of content and need to be fast — Astro will beat almost anything else here.
- Documentation sites where most pages are read-only with a small search widget.
- Migration projects where you want to leave existing React/Vue islands in place and rebuild the chrome around them.

## When not to

- Anything that's fundamentally an app — Nuxt or Next will fit your brain better.
- Heavily realtime products. Astro can do it, but the framework wasn't built for it.
- Teams without strong web-platform basics. Astro hides less than other frameworks — which is great, until you've never had to think about hydration before.

> Astro ships zero JavaScript by default — and that's the entire pitch. The frameworks that ship a 200KB hydration bundle for every marketing page never had to argue against that case before.

We've already used Astro on one project this year — a fast-loading internal docs site. The Lighthouse scores took less work than they would have anywhere else. We'll keep reaching for it where it fits.

## References

1. [Astro — official documentation](https://docs.astro.build/)
2. [Astro 1.0 launch post](https://astro.build/blog/astro-1/)
