Next.js 16 App Router performance optimization guidelines (formerly nextjs-16-app-router). This skill should be used when writing Next.js 16 code, configuring caching, implementing Server Components in Next.js, setting up App Router routing, or configuring next.config.js. This skill does NOT cover generic React 19 patterns (use react-19 skill) or non-Next.js server rendering.
Use the skills CLI to install this skill with one command. Auto-detects all installed AI assistants.
Method 1 - skills CLI
npx skills i pproenca/dot-skills/skills/.curated/nextjsMethod 2 - openskills (supports sync & update)
npx openskills install pproenca/dot-skillsAuto-detects Claude Code, Cursor, Codex CLI, Gemini CLI, and more. One install, works everywhere.
Installation Path
Download and extract to one of the following locations:
No setup needed. Let our cloud agents run this skill for you.
Select Provider
Select Model
Best for coding tasks
Environment setup included
Comprehensive performance optimization guide for Next.js 16 App Router applications, maintained by the Next.js Community. Contains 40 rules across 8 categories, prioritized by impact to guide automated refactoring and code generation.
Reference these guidelines when:
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Build & Bundle Optimization | CRITICAL | build- |
| 2 | Caching Strategy | CRITICAL | cache- |
| 3 | Server Components & Data Fetching | HIGH | server- |
| 4 | Routing & Navigation | HIGH | route- |
| 5 | Server Actions & Mutations | MEDIUM-HIGH | action- |
| 6 | Streaming & Loading States | MEDIUM | stream- |
| 7 | Metadata & SEO | MEDIUM | meta- |
| 8 | Client Components | LOW-MEDIUM | client- |
build-optimize-package-imports - Configure optimizePackageImports for Icon Librariesbuild-dynamic-imports - Use Dynamic Imports for Heavy Componentsbuild-barrel-files - Avoid Barrel File Imports in App Routerbuild-turbopack-config - Enable Turbopack File System Cachingbuild-external-packages - Configure Server External Packages for Node Dependenciescache-use-cache-directive - Use the 'use cache' Directive for Explicit Cachingcache-revalidate-tag - Use revalidateTag with cacheLife Profilescache-fetch-options - Configure Fetch Cache Options Correctlycache-revalidate-path - Use revalidatePath for Route-Level Cache Invalidationcache-react-cache - Use React cache() for Request Deduplicationcache-segment-config - Configure Route Segment Caching with Exportsserver-parallel-fetching - Fetch Data in Parallel in Server Componentsserver-component-streaming - Stream Server Components for Progressive Loadingserver-data-colocation - Colocate Data Fetching with Componentsserver-preload-pattern - Use Preload Pattern for Critical Dataserver-avoid-client-fetching - Avoid Client-Side Data Fetching for Initial Dataserver-error-handling - Handle Server Component Errors Gracefullyroute-parallel-routes - Use Parallel Routes for Independent Contentroute-intercepting-routes - Use Intercepting Routes for Modal Patternsroute-prefetching - Configure Link Prefetching Appropriatelyroute-proxy-ts - Use proxy.ts for Network Boundary Logicroute-not-found - Use notFound() for Missing Resourcesaction-server-action-forms - Use Server Actions for Form Submissionsaction-pending-states - Show Pending States with useFormStatusaction-error-handling - Handle Server Action Errors Gracefullyaction-optimistic-updates - Use Optimistic Updates for Instant Feedbackaction-revalidation - Revalidate Cache After Mutationsstream-suspense-boundaries - Place Suspense Boundaries Strategicallystream-loading-tsx - Use loading.tsx for Route-Level Loading Statesstream-error-tsx - Use error.tsx for Route-Level Error Boundariesstream-skeleton-matching - Match Skeleton Dimensions to Actual Contentstream-nested-suspense - Nest Suspense for Progressive Disclosuremeta-generate-metadata - Use generateMetadata for Dynamic Metadatameta-sitemap - Generate Sitemaps Dynamicallymeta-robots - Configure Robots for Crawl Controlmeta-opengraph-images - Generate Dynamic OpenGraph Imagesclient-use-client-boundary - Minimize 'use client' Boundary Scopeclient-children-pattern - Pass Server Components as Children to Client Componentsclient-hydration-mismatch - Avoid Hydration Mismatchesclient-third-party-scripts - Load Third-Party Scripts EfficientlyRead individual reference files for detailed explanations and code examples:
react-19 skilltanstack-query skillreact-hook-form skillFor the complete guide with all rules expanded: AGENTS.md