Agent Skills

nextjs16-skills

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

Install

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

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.

Related skills

vercel-react-best-practicesvercel-labs751KReact and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.vercel-composition-patternsvercel-labs361KReact composition patterns that scale. Use when refactoring components with boolean prop proliferation, building flexible component libraries, or designing reusable APIs. Triggers on tasks involving compound components, render props, context providers, or component architecture. Includes React 19 API changes.vercel-react-view-transitionsvercel-labs135KGuide for implementing smooth, native-feeling animations using React's View Transition API (`<ViewTransition>` component, `addTransitionType`, and CSS view transition pseudo-elements). Use this skill whenever the user wants to add page transitions, animate route changes, create shared element animations, animate enter/exit of components, animate list reorder, implement directional (forward/back) navigation animations, or integrate view transitions in Next.js. Also use when the user mentions viewpick-ui-libraryemilkowalski124KPick the right library for a given frontend task from a curated, opinionated list — numbers, OTP inputs, charts, command menus, virtualization, drag and drop, toasts, state, styling, and more. Only runs when explicitly invoked; it does not trigger on its own.

Search skills and MCP servers

Fuzzy search across 23,137 skills and servers