plugins/nextjs-expert/skills/nextjs-16/SKILL.md
Expert Next.js 16 with Turbopack, App Router, Cache Components, proxy.ts, React 19. Use when building Next.js apps, routing, caching, server components, or migrating from v15. Do NOT use for: full-stack assembly and scaffolding with Prisma/Better Auth/shadcn/Zustand (use nextjs-stack), pure React SPA without next.config (use react-expert skills).
npx skillsauth add fusengine/agents nextjs-16Install this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Production-ready React framework with Server Components, streaming, and Turbopack.
Before ANY implementation, use TeamCreate to spawn 3 agents:
After implementation, run fuse-ai-pilot:sniper for validation.
| Feature | Benefit |
|---------|---------|
| Turbopack default | 2-5x faster builds, 10x faster HMR, Webpack deprecated |
| Cache Components | Explicit caching with use cache directive |
| proxy.ts | Full Node.js runtime, replaces Edge middleware |
| React Compiler | Automatic memoization, no manual useMemo/useCallback |
| React 19 | View Transitions, useEffectEvent, Activity component |
| App Router | Nested layouts, parallel routes, intercepting routes |
use cache directive - Replaces Partial Prerendering (PPR)Pages are thin entry points importing from feature modules:
app/page.tsx → imports from modules/public/home/app/dashboard/page.tsx → imports from modules/auth/dashboard/modules/cores/ → Shared services, utilities, configurationsAll components are Server Components by default. Use 'use client' directive only when needed for interactivity, hooks, or browser APIs.
use cache - Mark async functions for cachingcacheTag() - Tag cached data for targeted revalidationcacheLife() - Control cache duration (stale, revalidate, expire)revalidateTag() - Invalidate cached data on-demandServer Components fetch data directly. Use fetch() with native caching or database queries. No need for getServerSideProps or getStaticProps.
| Need | Reference | |------|-----------| | Initial setup | installation.md, project-structure.md | | Migration v15→v16 | upgrade.md, middleware-migration.md | | Routing | app-router.md, routing-advanced.md | | Caching | caching.md, cache-components.md | | Server Components | server-components.md, directives.md | | React 19 features | react-19.md, react-compiler.md | | Route protection | proxy.md, security.md | | SEO/Metadata | metadata.md, metadata-files.md | | Forms/Actions | forms.md, data-fetching.md | | Deployment | deployment.md, environment.md |
'use client' when necessaryuse cache for expensive operationstesting
Copy self-audit and ban-lists — filler verbs/hype adjectives, slop placeholder names, fake-precise numbers, Title Case headlines, humor in error copy ('Oops!'), em-dash crutch, one copy register per page.
development
Logged-in web apps — dashboards, auth flows, settings, onboarding, data tables, command palettes, modals, toasts. Register `product`: density and glance-speed over marketing polish, no hero/CTA-tricks, every data surface covers empty/loading/error explicitly, tables and dataviz follow preattentive-processing rules.
development
Marketing sites, landing pages, campaign pages — register `brand` (design IS the product). Structure comes from the register's POV + a macrostructure pick, never from copying an inspiration site's section flow. Hero discipline, deviated section order, asymmetric grids, and a silhouette lookalike-test gate before ship.
development
Token-strategy core — OKLCH color rules, neutral tinting, accent-commitment levels, type scale, 8pt spacing grid, touch targets, and the canonical output format of design-system.md (the file the harness gates on). This is routing step 1 of design-method/SKILL.md — read it before design-web/design-webapp/design-ios/design-android, before picking or auditing a single color/type/spacing value.