← Zurück zum Tech Radar

Astro 5+

Ring: AdoptQuadrant: Sprachen und Frameworks

Mein Verdikt

Standardwahl für content-lastige Headless-Frontends. Zero-JS-Inseln gewinnen bei den Core Web Vitals.

Praktiker-Briefing

Warum wir es eingeführt haben

Wir haben wppoland.com im März 2026 von Next.js 13 pages router auf Astro 5 umgestellt. Der LCP auf der Startseite fiel von 2,4 s auf 1,1 s im Moto-G-Power-Profil, das JS-Bundle einer Content-Seite schrumpfte von 187 KB gzipped auf 9 KB (eine einzige Search-Insel), die Cold-Build-Zeit der gesamten Site sank von 11 min 30 s auf Vercel auf 7 min 30 s lokal mit dem 16-GB-Heap in scripts/stable-build.sh. Die Content Layer API (RFC 0050, Astro 5.0) führt MDX, JSON und Remote-Inhalte unter einer einzigen getCollection-Oberfläche zusammen und macht drei Adapter aus der Next.js-Zeit überflüssig.

Wann wir darauf zurückgreifen

Content-getriebene Marketing-Flächen: Pillar-Seiten, Vergleichsmatrizen, programmatische Stadtseiten, Docs, Blogs. Überwiegend statisch gerendert, Inseln isoliert (Suche, ein Pricing-Toggle, ein Chart), Redaktionsschleife über Markdown plus MDX-Collections. Zu Astro greifen wir nicht, wenn das Briefing applikationsförmig ist: Dashboards hinter Login, Checkouts mit geteiltem Cart-State, alles, wo client-gerendertes React oder RSC-Streaming das richtige Modell ist. Dafür bleiben wir bei Next.js 15.

Upgrade-Pfad

Die meisten Teams kommen von Next.js 13/14 pages router (sauberster Weg, getStaticProps lässt sich fast 1:1 auf Astro-Collections abbilden), von Gatsby v5 (das GraphQL-Schema ist der harte Teil, File-Router und MDX portieren sich problemlos) oder von einem WordPress-Monolithen, der headless wird (als Greenfield behandeln, WPGraphQL oder REST anbinden). Was nicht mitwandert: React Context, Client-only State (Zustand, Jotai), Next.js Middleware. Rechnen Sie mit rund einem Tag pro 30 Content-Seiten plus einer harten Woche für React-zu-Astro-Shell-Konvertierungen.

Zwei Narben aus dem Produktivbetrieb

Erstens View Transitions auf iOS Safari 17.4: Ein Klick auf einen MDX-getriebenen Link während einer Transition startete neue Island-Skripte, bevor das alte DOM ausgetauscht war. Zurück blieben tote Listener, und die Suche war bei der zweiten Navigation kaputt. Workaround: transition:persist="search" und <ClientRouter /> statt des alten <ViewTransitions />-Imports (Astro PR #12029 hat das in 5.2 stabilisiert). Zweitens MDX plus remark-shiki in einem Cloudflare-Pages-Build: shiki wollte über 90 Grammatiken laden und riss einen 4-GB-Worker mit OOM um. Fix: shikiConfig.langs auf ['ts', 'js', 'php', 'json', 'bash'] festnageln. Der Build-Speicher fiel von 3,8 GB auf 1,2 GB.

Was wir beobachten

Server Islands (Matthew Phillips, RFC 0040, in 5.0) sind der Weg zu selektiver dynamischer Personalisierung innerhalb einer statischen Seite. Wir pilotieren das am Pricing-Toggle, halten uns site-weit aber zurück, bis sich die Caching-Header stabilisieren (astro/#11437). Die Container API für Komponententests unter vitest steht auf unserer Shortlist, sobald Bjorn Lus PR #11952 landet. Und Astro DB: Turso hat es Anfang 2026 zurückgekauft, die Migrationsgeschichte für astro:db-Sites ist weiter offen (astro/#12188).

Hinzugefügt: 2026-04-26 · Letzte Sichtung: 2026-04-26

Weiterführende Lektüre