nextjs — Codex skill for Next.js App Router
Guidance for building and debugging Next.js App Router projects. Use it to work through routing, Server Components, data fetching, and rendering choices.
npx skills add openai/plugins --skill nextjs -a codexWhat nextjs does
The skill covers App Router conventions, layouts, and route handlers. It helps choose between Server Components, Server Actions, and Route Handlers, and addresses data loading, caching, and error handling. It also covers metadata, images, fonts, and deployment on Vercel.
Its guidance is organized around project files and Next.js commands, with reference material for async APIs in Next.js 15+, React Server Component boundaries, Suspense, and other topics. For Docker, it discusses output: 'standalone'; Edge runtime is treated as a deliberate runtime choice.
Install it when you build or review a Next.js app. It has little to offer a project that does not use Next.js.
What it helps with
- map routes and layouts in an App Router project
- trace an invalid Server and Client Component boundary
- choose a data-fetching pattern for a page
- debug a hydration or Suspense error
- prepare a Next.js app for deployment on Vercel
Example prompts for the agent
- Review the routes in `app/` and suggest a structure for this project.
- Find the cause of this page's hydration error and propose a fix.
- Compare Server Actions and Route Handlers for this operation.
How to install nextjs
1Skills CLI (Vercel)
npx skills add openai/plugins --skill nextjs -a codex2Manually: put the files in place
.agents/skills/nextjs/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add openai/plugins --skill nextjs -a claude-code2Manually: put the files in place
~/.claude/skills/nextjs/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/nextjs/
Manually: put the files in place
.cursor/skills/nextjs/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install openai/plugins nextjs2Manually: put the files in place
.github/skills/nextjs/SKILL.mdPlatform CLI
gemini skills install https://github.com/openai/plugins --path plugins/vercel/skills/nextjsManually: put the files in place
.devin/skills/nextjs/SKILL.mdThe legacy .windsurf/skills/ path still works
Claude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set201
The whole set →Similar
Questions about nextjs
How do I install nextjs in Codex?
Run npx skills add openai/plugins --skill nextjs or npx skills add openai/plugins --skill nextjs -a codex.
What does the nextjs skill do?
It gives development and debugging guidance for Next.js App Router apps, covering routes, components, data fetching, caching, and error handling.
Which Next.js topics does the skill cover?
It covers async APIs in Next.js 15+, Server Components, Server Actions, Suspense, route handlers, and deployment on Vercel.
Source text
SKILL.md · Apache-2.0
---
name: nextjs
description: Next.js App Router expert guidance. Use when building, debugging, or architecting Next.js applications — routing, Server Components, Server Actions, Cache Components, layouts, middleware/proxy, data fetching, rendering strategies, and deployment on Vercel.
metadata:
priority: 5
docs:
- "https://nextjs.org/docs"
- "https://nextjs.org/docs/app"
sitemap: "https://nextjs.org/sitemap.xml"
pathPatterns:
- 'next.config.*'
- 'next-env.d.ts'
- 'app/**'
- 'pages/**'
- 'src/app/**'
- 'src/pages/**'
- 'tailwind.config.*'
- 'postcss.config.*'
- 'tsconfig.json'
- 'tsconfig.*.json'
- 'apps/*/app/**'
- 'apps/*/pages/**'
- 'apps/*/src/app/**'
- 'apps/*/src/pages/**'
- 'apps/*/next.config.*'
bashPatterns:
- '\bnext\s+(dev|build|start|lint)\b'
- '\bnext\s+experimental-analyze\b'
- '\bnpx\s+create-next-app\b'
- '\bbunx\s+create-next-app\b'
- '\bnpm\s+run\s+(dev|build|start)\b'
- '\bpnpm\s+(dev|build)\b'
- '\bbun\s+run\s+(dev|build)\b'
promptSignals:
phrases:
- "next.js"
- "nextjs"
- "app router"
- "server component"
- "server action"
allOf:
- [middleware, next]
- [layout, route]
anyOf:
- "pages router"
- "getserversideprops"
- "use server"
noneOf: []
minScore: 6
---
# Next.js Best Practices
Apply these rules when writing or reviewing Next.js code.
## File Conventions
See [file-conventions.md](references/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](references/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](references/async-patterns.md) for:
- Async `params` and `searchParams`
- Async `cookies()` and `headers()`
- Migration codemod
## Runtime Selection
See [runtime-selection.md](references/runtime-selection.md) for:
- Default to Node.js runtime
- When Edge runtime is appropriate
## Directives
See [directives.md](references/directives.md) for:
- `'use client'`, `'use server'` (React)
- `'use cache'` (Next.js)
## Functions
See [functions.md](references/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](references/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](references/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](references/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](references/metadata.md) for:
- Static and dynamic metadata
- `generateMetadata` function
- OG image generation with `next/og`
- File-based metadata conventions
## Image Optimization
See [image.md](references/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](references/font.md) for:
- `next/font` setup
- Google Fonts, local fonts
- Tailwind CSS integration
- Preloading subsets
## Bundling
See [bundling.md](references/bundling.md) for:
- Server-incompatible packages
- CSS imports (not link tags)
- Polyfills (already included)
- ESM/CommonJS issues
- Bundle analysis
## Scripts
See [scripts.md](references/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](references/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](references/suspense-boundaries.md) for:
- CSR bailout with `useSearchParams` and `usePathname`
- Which hooks require Suspense boundaries
## Parallel & Intercepting Routes
See [parallel-routes.md](references/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](references/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](references/debug-tricks.md) for:
- MCP endpoint for AI-assisted debugging
- Rebuild specific routes with `--debug-build-paths`
© Vercel Labs · Apache-2.0 · openai/plugins