Next.js App Router route handler patterns...
Patterns for thin, maintainable route handlers in Next.js App Router.
Use this skill when:
app/api/**/route.ts filesservices/ function,
return a response.{ data } for success,
{ error: { code, message } } for errors.app/**/page.tsx and app/**/layout.tsx are Server Components by
default.'use client' creates a boundary; keep client islands small.nextjs-server-vs-client - Server vs Client Components (defaults, when to use
client)nextjs-serializable-props - Props must be serializable from Server to Clientnextjs-protecting-server-code - Protecting server-only code from client
importsnextjs-special-file-exports - Allowed extra exports for Next.js special
filesnextjs-route-placement - Route handler placement and conflicts with pagesnextjs-thin-handler-rule - Thin handler rule (STRICT)nextjs-http-methods - Supported HTTP methodsnextjs-caching-model - Caching model for route handlersnextjs-cache-components - Cache Components note for route handlersnextjs-response-shapes - Standard JSON response shapes (success/error)nextjs-status-codes - HTTP status codes to usenextjs-response-rules - Rules for API responses (validation, error handling)nextjs-validation-boundaries - Where validation lives (route handlers,
services, utils)nextjs-validation-patterns - Validation patterns (unknown inputs, guards)nextjs-validation-helpers - Recommended validation helpersnextjs-validation-rules - Validation rules (no inline types/helpers)Read individual rule files for detailed explanations and code examples:
rules/nextjs-thin-handler-rule.md
rules/nextjs-response-shapes.md
rules/nextjs-validation-boundaries.md
Each rule file contains: