Zum Inhalt springen

Next.js vs. Astro: Wie viel Ihrer Seite ist interaktiv?

Astro liefert kein JavaScript aus, bis Sie danach fragen. Next.js liefert eine React-Runtime und lässt Sie sie verkleinern. Dieser eine Unterschied entscheidet das meiste.

3 Min. Lesezeit

Ehrlich formuliert läuft das auf eine einzige Frage hinaus: Welcher Anteil Ihrer Seite muss nach dem Laden etwas tun?

Beantworten Sie die, und der Vergleich löst sich weitgehend von selbst.

Der Standard, von dem jedes ausgeht

Astro rendert zu HTML und liefert kein JavaScript aus. Interaktivität wird pro Komponente aktiviert - eine Island - und alles außerhalb davon ist statisches Markup. Eine Seite mit einem Suchfeld liefert das Suchfeld.

Next.js rendert zu HTML und liefert eine React-Runtime. Server Components erlauben es, Komponenten vom Client fernzuhalten, sodass das Bundle klein sein kann - aber die Grundlinie ist nicht null, und die Disziplin liegt bei Ihnen. Wo die Client-Grenze sitzt, ist der ganze Unterschied zwischen einer schlanken und einer schweren Next.js-Seite.

Also: Astro beginnt bei null und Sie fügen hinzu. Next.js beginnt mit einer Runtime und Sie ziehen ab. Auf einer überwiegend statischen Seite gewinnt der Start bei null, und zwar deutlich.

Wo Astro die bessere Antwort ist

  • Dokumentation, Blogs, Marketing-Websites. Inhalt mit ein paar interaktiven Stellen. Astros Content Collections behandeln Frontmatter, typisierten Inhalt und Markdown nativ - andernfalls ein kleiner Haufen Klebecode.
  • Überall, wo das JavaScript-Budget die Einschränkung ist. Langsame Netze, günstige Geräte, große Märkte, in denen das mittlere Telefon kein aktuelles ist.
  • Seiten mit Komponenten aus mehreren Frameworks. Astro ist wirklich agnostisch. Ein React-Widget und ein Svelte-Widget auf einer Seite ist dort normal statt heroisch.

Wo Next.js die bessere Antwort ist

  • Geteilter Client-Zustand über die Seite hinweg. Ein Warenkorb, ein Filterpanel, das ein Grid steuert, ein Editor. Astros Islands sind bewusst isoliert; sie miteinander sprechen zu lassen heißt, zu einem Store außerhalb des Frameworks zu greifen - und dann bauen Sie nach, was React schon tut.
  • Authentifizierte Anwendungsoberflächen. Alles, wo sich der Großteil der Seite pro Nutzer ändert und die Rendering-Strategie pro Route statt pro Komponente entschieden werden muss.
  • Statisch und dynamisch gemischt in einer Codebasis. Ein Katalog, der zur Build-Zeit erzeugt werden muss, und ein Checkout, der es nicht darf. Das Rendering-Modell ist genau für diese Teilung gebaut.

Die Falle dazwischen

Der Fall, der schiefgeht, ist die Website, die als Inhalt beginnt und innen eine Anwendung ausbildet. Eine Doku bekommt einen Playground. Eine Marketing-Seite bekommt einen Konfigurator, dann einen Kundenbereich.

Islands bewältigen eines davon. Drei, die Zustand teilen, ist der Punkt, an dem Teams anfangen, ihre eigene Brücke zu schreiben - und eine handgebaute Zustandsschicht zwischen isolierten Islands ist schlechter als die Antwort jedes der beiden Frameworks.

Wenn Sie diese Entwicklung bei der Wahl absehen können, gewichten Sie sie. Wenn Sie es wirklich nicht können, ist Astro der günstigere Fehler: Eine statische Website verlässt man leichter als eine Anwendung.

Worum es dabei nicht geht

SEO. Beide erzeugen serverseitig gerendertes HTML. Keines hat einen inhärenten Vorteil, und was Rankings tatsächlich entscheidet - Canonicals und Sitemaps, strukturierte Daten, Core Web Vitals - ist in beiden Ihre Arbeit.

Geschwindigkeit. Astros Vorteil beim Seitengewicht ist real und betrifft JavaScript, nicht das Rendering. Eine gut gebaute Next.js-Website mit disziplinierter Client-Grenze ist schnell. Eine nachlässige nicht - und eine nachlässige Astro-Seite mit fünf überflüssigen Islands ebenso wenig.

Wenn die Antwort auf die Eingangsfrage „fast nichts davon" lautet, brauchen Sie womöglich gar kein React-Framework.

Zurück zu allen Artikeln