mcpField
N
nextjs16-skills

nextjs16-skills

github.com/gocallumDevelopment23715 installsUpdated 40w ago
Repository

About nextjs16-skills

nextjs16-skills summarizes Next.js 16 upgrades, feature changes, and migration details for developers maintaining or building Next.js projects. It covers caching, Turbopack, routing changes, and compatibility requirements.

Key features

  1. 01Next.js 16 upgrade guidance
  2. 02Caching APIs and Cache Components
  3. 03Turbopack configuration and migration
  4. 04Routing and prefetching changes
  5. 05Breaking changes and deprecations

Use cases

  1. 01Upgrade a Next.js project to v16
  2. 02Migrate Webpack or Turbopack configuration
  3. 03Adapt caching and revalidation logic
  4. 04Check compatibility changes during an upgrade

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/gocallum/nextjs16-agent-skills --skill nextjs16-skills

After installing, type/nextjs16-skillsin Claude Code to confirm it loaded.

Details

From the project README

Links

Upgrade

# Automated upgrade
npx @next/codemod@canary upgrade latest

# Manual upgrade
npm install next@latest react@latest react-dom@latest

# New project
npx create-next-app@latest

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.

Comments

Markdown supported