Skip to content

Next.js Best Practices

Verified

Next.js 15 best practices covering App Router, Server Actions, middleware, ISR, and edge runtime patterns.

By Vercel Labs 34,200 stars v1.0 Updated 2026-03-15
$ Add to .claude/skills/

About This Skill

# Next.js Best Practices

Apply these rules when writing or reviewing Next.js code.

File Conventions

  • See file-conventions.md for:
  • Project structure and special files
  • Route segments (dynamic, catch-all, groups)
  • Parallel and intercepting routes
  • Middleware rename in v16 (middleware → proxy)

RSC Boundaries

Detect invalid React Server Component patterns.

  • See rsc-boundaries.md for:
  • Async client component detection (invalid)
  • Non-serializable props detection
  • Server Action exceptions

Async Patterns

Next.js 15+ async API changes.

  • See async-patterns.md for:
  • Async `params` and `searchParams`
  • Async `cookies()` and `headers()`
  • Migration codemod

Runtime Selection

  • See runtime-selection.md for:
  • Default to Node.js runtime
  • When Edge runtime is appropriate

Directives

  • See directives.md for:
  • `'use client'`, `'use server'` (React)
  • `'use cache'` (Next.js)

Functions

  • See functions.md for:
  • Navigation hooks: `useRouter`, `usePathname`, `useSearchParams`, `useParams`
  • Server functions: `cookies`, `headers`, `draftMode`, `after`
  • Generate functions: `generateStaticParams`, `generateMetadata`

Error Handling

  • See error-handling.md for:
  • `error.tsx`, `global-error.tsx`, `not-found.tsx`
  • `redirect`, `permanentRedirect`, `notFound`
  • `forbidden`, `unauthorized` (auth errors)
  • `unstable_rethrow` for catch blocks

Data Patterns

  • See data-patterns.md for:
  • Server Components vs Server Actions vs Route Handlers
  • Avoiding data waterfalls (`Promise.all`, Suspense, preload)
  • Client component data fetching

Route Handlers

  • See route-handlers.md for:
  • `route.ts` basics
  • GET handler conflicts with `page.tsx`
  • Environment behavior (no React DOM)
  • When to use vs Server Actions

Metadata & OG Images

  • See metadata.md for:
  • Static and dynamic metadata
  • `generateMetadata` function
  • OG image generation with `next/og`
  • File-based metadata conventions

Image Optimization

  • See image.md for:
  • Always use `next/image` over `<img>`
  • Remote images configuration
  • Responsive `sizes` attribute
  • Blur placeholders
  • Priority loading for LCP

Font Optimization

  • See font.md for:
  • `next/font` setup
  • Google Fonts, local fonts
  • Tailwind CSS integration
  • Preloading subsets

Bundling

  • See bundling.md for:
  • Server-incompatible packages
  • CSS imports (not link tags)
  • Polyfills (already included)
  • ESM/CommonJS issues
  • Bundle analysis

Scripts

  • See scripts.md for:
  • `next/script` vs native script tags
  • Inline scripts need `id`
  • Loading strategies
  • Google Analytics with `@next/third-parties`

Hydration Errors

  • See hydration-error.md for:
  • Common causes (browser APIs, dates, invalid HTML)
  • Debugging with error overlay
  • Fixes for each cause

Suspense Boundaries

  • See suspense-boundaries.md for:
  • CSR bailout with `useSearchParams` and `usePathname`
  • Which hooks require Suspense boundaries

Parallel & Intercepting Routes

  • See parallel-routes.md for:
  • Modal patterns with `@slot` and `(.)` interceptors
  • `default.tsx` for fallbacks
  • Closing modals correctly with `router.back()`

Self-Hosting

  • See self-hosting.md for:
  • `output: 'standalone'` for Docker
  • Cache handlers for multi-instance ISR
  • What works vs needs extra setup

Debug Tricks

  • See debug-tricks.md for:
  • MCP endpoint for AI-assisted debugging
  • Rebuild specific routes with `--debug-build-paths`

Use Cases

  • Apply Next.js 15 App Router best practices for file conventions, routing, and RSC boundaries
  • Detect invalid React Server Component patterns like async client components and non-serializable props
  • Configure middleware, ISR, and edge runtime patterns following official recommendations
  • Implement proper Server Actions with validation, error handling, and revalidation
  • Review Next.js code for common anti-patterns and performance issues

Pros & Cons

Pros

  • +Covers the latest Next.js 15 patterns including the upcoming v16 middleware rename
  • +Structured as enforceable rules — integrates well with code review workflows
  • +Security verified with proper tool permissions (Read, Glob, Grep only)

Cons

  • -App Router focused — no coverage for Pages Router projects
  • -Rule-based approach may not cover all edge cases in complex applications

FAQ

What does Next.js Best Practices do?
Next.js 15 best practices covering App Router, Server Actions, middleware, ISR, and edge runtime patterns.
What platforms support Next.js Best Practices?
Next.js Best Practices is available on Claude Code, Cursor.
What are the use cases for Next.js Best Practices?
Apply Next.js 15 App Router best practices for file conventions, routing, and RSC boundaries. Detect invalid React Server Component patterns like async client components and non-serializable props. Configure middleware, ISR, and edge runtime patterns following official recommendations.

100+ free AI tools

Writing, PDF, image, and developer tools — all in your browser.

Next Step

Use the skill detail page to evaluate fit and install steps. For a direct browser workflow, move into a focused tool route instead of staying in broader support surfaces.