Next.js 15 (App Router + RSC)
Mitt verdikt
Standardvalg for applikasjonstunge headless-frontender. RSC er stabil etter 18 måneder i produksjon.
Praktikerbrief
Hvorfor vi tok det i bruk
Vi leverte fire klient-app-shells på Next.js 15 mellom november 2025 og april 2026. TTFB på en personalisert dashbord-rute streamet fra RSC pluss PPR (Partial Prerendering, RFC vercel/next.js#54647 fra Sebastian Markbåge og Andrew Clark): shellen renderes på 240 ms, mens den personaliserte slotten streames inn på under 800 ms. Samme visning i klientens forrige pages-router-app var en TTFB-vegg på 1,6 s som ventet på en enkelt getServerSideProps. Byggetiden gikk fra 9 min til 6 min etter at Turbopack ble stabil i next build (15.2). Bundlen for merchant-dashbordet falt fra 410 KB gzippet til 230 KB etter RSC pluss selektiv 'use client'.
Når vi griper til det
Applikasjonsformede oppdrag: innloggede dashbord, checkout i flere steg, B2B-portaler med rollebasert UI, personaliserte commerce-lister som trenger streamede slots over skjermkanten. Redaksjonelle flater går til Astro 5. RSC-streaming gjør vondt når payloadene er små, når én treg upstream nuller ut gevinsten, eller når teamet legger 'use client' på layout-nivå.
Oppgraderingsvei
Fra Next.js 14 pages router er migreringen et reelt prosjekt, ikke et flaggbytte. Lee Robinsons codemod (@next/codemod app-dir) håndterer filstrukturen, men kan ikke resonnere om formen på datahentingen. Resten av jobben er å dele komponentene i server- og klientlag og finne ut hvilke contexts som lever under en 'use client'-grense. Regn med to ukers utviklingsarbeid for en app med 40 ruter, tre uker med delt handlekurv- eller auth-context. Fra Remix v2 er flyttingen vanskeligere enn ventet: loaders og actions er en annen mental modell enn RSC pluss server actions. Det som ikke overføres: rene klientside-Redux-stores, getInitialProps, det meste av pages-router middleware.
To arr fra produksjon
For det første brøt RSC-streaming pluss Tailwind v4 pluss edge-runtime dynamisk klassegenerering i en B2B-portal i februar 2026. Tailwinds JIT-skanner kjører før serverkomponenten renderes, så klasser som interpoleres inne i RSC-payloads er usynlige. Fiks: forhåndsdeklarer permutasjonene i safelist i tailwind.config.mjs. For det andre ble server actions pluss OpenNext-adapteren for Cloudflare dobbelt-invokert under et checkout-forsøk: en bruker trykket Betal to ganger innen 800 ms, og vi belastet kortet to ganger. Fiksen kom i OpenNext 3.4 (sst/opennext PR #492), og vi la til en idempotency-key-cookie slik at eldre adapter-bygg også blir no-op.
Det vi følger med på
Partial Prerendering GA i Next.js 15.5 lar oss slutte å vedlikeholde to renderingsstrategier på samme rute (vercel/next.js#54647). React 19.1s useOptimistic pluss typede server-action-resultater forenkler oppdateringsløpet for handlekurven. Vi følger også med på after()-API-et for arbeid etter respons, og på fremdriften i OpenNext mot Workers-paritet for ISR (sst/opennext milestone 4.0).
Lagt til: 2026-04-26 · Sist gjennomgått: 2026-04-26