nextjs16-skills

Key facts and links for Next.js 16. Use for planning, writing, and troubleshooting Next.js 16 changes.

By gocallum · 680 installs

npx skills add gocallum/nextjs16-agent-skills --skill nextjs16-skills

Source repository · Upstream listing

Links Docs: https://nextjs.org/docs Upgrade guide (v16): https://nextjs.org/docs/app/guides/upgrading/version 16 Release notes/blog: https://nextjs.org/blog/next 16 Upgrade Codemod covers (high level): moves Turbopack config, migrates next lint → ESLint CLI, migrates middleware → proxy , removes some unstable prefixes, removes route level experimental ppr . TypeScript: also upgrade @types/react and @types/react dom . What’s New (v16) Cache Components: opt in caching via the "use cache" directive; evolves/absorbs PPR. Next.js DevTools MCP: Model Context Protocol integration for AI assisted debugging. proxy.ts : clearer network boundary; middleware.ts deprecated for most use. Better logs/metrics: more detailed next dev and build timing output. Performance / DX Turbopack: stable; default bundler (opt out with next dev webpack , next build webpack ). If you have a custom webpack config, next build may fail (to prevent misconfiguration). Fix by migrating config, using next build webpack , or using Turbopack and removing/ignoring the webpack config. Turbopack config moved: experimental.turbopack → top level turbopack in next.config. . Turbopack migration gotchas: Sass imports: remove the Webpack only ~ prefix (e.g. @import 'bootstrap/...'; ). Browser bundles must not import Node built ins (e.g. fs ). If unavoidable, use turbopack.resolveAlias as a stopgap. Turbopack filesystem cache (dev, beta): experimental.turbopackFileSystemCacheForDev: true . React Compiler support: stable opt in via reactCompiler: true (expect higher build/compile cost). Build Adapters API: alpha (custom build adapters). Routing/prefetching rewrite: layout deduplication + incremental prefetching. Caching APIs (key signatures) revalidateTag(tag, profile) now requires a cacheLife profile (or { expire } ) for SWR behavior. updateTag(tag) (Server Actions only): read your writes semantics. refresh() (Server Actions only): refresh uncached data; does not mutate cache. cacheLife and cacheTag are stable (no unstable prefix). Requirements (v16) Node.js: 20.9+ (Node 18 not supported) TypeScript: 5.1+ Browsers: Chrome/Edge/Firefox 111+, Safari 16.4+ Breaking / Behavior Changes (high impact) Async Request APIs: sync access removed. Use await params , await searchParams , await cookies() , await headers() , await draftMode() . Tip (TypeScript): npx next typegen can generate helpers like PageProps , LayoutProps , RouteContext to migrate params/searchParams types safely. Metadata images: opengraph image , twitter image , icon , apple icon now receive params (and id ) as Promises in the image function. Sitemaps: sitemap({ id }) now receives id as a Promise when using generateSitemaps . Parallel routes: slots require explicit default.js . next/image defaults changed (cache TTL, sizes/qualities); local src with query strings requires images.localPatterns . Other notable behavior changes: next dev and next build use separate output dirs ( next dev → .next/dev ) and a lockfile prevents concurrent instances. Scroll behavior: Next.js no longer overrides global scroll behavior: smooth during navigations; add data scroll behavior="smooth" on <html to restore the previous override behavior. ESLint: @next/eslint plugin next defaults to ESLint Flat Config; legacy .eslintrc projects may need migration. Removed / Deprecated (high level) Removed: AMP support; next lint (use ESLint/Biome directly); eslint option in next.config. ; serverRuntimeConfig/publicRuntimeConfig (use env vars); experimental.ppr + route level experimental ppr ; unstable rootParams . Deprecated: middleware.ts filename (prefer proxy.ts ); next/legacy/image ; images.domains (prefer images.remotePatterns ); revalidateTag(tag) single arg form. proxy.ts note: proxy runs on nodejs only; Edge runtime is not supported in proxy . Keep middleware.ts if you must stay on Edge. Config rename example: skipMiddlewareUrlNormalize → skipProxyUrlNormalize .