Astro 5+
Mitt verdikt
Standardvalg for innholdstunge headless-frontender. Null-JS-øyer vinner på Core Web Vitals.
Praktikerbrief
Hvorfor vi tok det i bruk
Vi flyttet wppoland.com fra Next.js 13 pages-router til Astro 5 i mars 2026. LCP på forsiden gikk fra 2,4 s til 1,1 s på en Moto G Power-profil, JS-bundlen på en innholdsside falt fra 187 KB gzippet til 9 KB (en enkelt Search-øy), og full kald bygging av hele nettstedet gikk fra 11 min 30 s på Vercel til 7 min 30 s lokalt med 16 GB heap i scripts/stable-build.sh. Content Layer API (RFC 0050, Astro 5.0) behandler MDX, JSON og eksternt innhold under én getCollection-flate, og slår sammen tre adaptere fra Next.js-tiden.
Når vi griper til det
Innholdsdrevne markedsføringsflater: pillar-sider, sammenligningsmatriser, programmatiske bysider, dokumentasjon, blogger. Renderes stort sett statisk, øyer isolert (søk, en prisbryter, et diagram), redaktørløkke gjennom Markdown og MDX-kolleksjoner. Vi griper ikke til Astro når oppdraget er applikasjonsformet: innloggede dashbord, checkout med delt handlekurvtilstand, alt der riktig modell er klientrendret React eller RSC-streaming. Da holder vi oss til Next.js 15.
Oppgraderingsvei
De fleste team kommer fra Next.js 13/14 pages router (reneste vei, getStaticProps mapper nesten 1:1 til Astro-kolleksjoner), Gatsby v5 (GraphQL-skjemaet er den vanskelige delen, filruteren og MDX porteres greit), eller en WordPress-monolitt på vei mot headless (behandle det som greenfield, koble på WPGraphQL eller REST). Det som ikke overføres: React context, tilstand kun på klienten (Zustand, Jotai), Next.js middleware. Regn med ca. 1 dag per 30 innholdssider pluss en tung uke for konvertering av React-shell til Astro.
To arr fra produksjon
For det første View Transitions på iOS Safari 17.4: å klikke en MDX-drevet lenke midt i en overgang startet nye øy-skript før det gamle DOM-et ble byttet ut, slik at utdaterte lyttere ble hengende igjen og søket brøt sammen ved den andre navigasjonen. Omgåelse: transition:persist="search" og <ClientRouter /> i stedet for den gamle <ViewTransitions />-importen (Astro PR #12029 stabiliserte dette i 5.2). For det andre MDX pluss remark-shiki i en Cloudflare Pages-bygging: shiki forsøkte å laste 90+ grammatikker og OOM-et en 4 GB worker. Fiks: lås shikiConfig.langs til ['ts', 'js', 'php', 'json', 'bash']. Byggeminnet falt fra 3,8 GB til 1,2 GB.
Det vi følger med på
Server Islands (Matthew Phillips, RFC 0040, i 5.0) er veien til selektiv dynamisk personalisering inne i en statisk side. Vi piloterer det på prisbryteren, men venter med utrulling på hele nettstedet til cache-headerne stabiliserer seg (astro/#11437). Container API for komponenttesting under vitest står på kortlisten så snart Bjorn Lus PR #11952 lander. Og Astro DB: Turso kjøpte det tilbake tidlig i 2026, og migreringshistorien for astro:db-nettsteder er fortsatt åpen (astro/#12188).
Lagt til: 2026-04-26 · Sist gjennomgått: 2026-04-26