BusiRocket

busirocket-nextjs

Applies Next.js App Router route handler patterns. Use when creating or

BusiRocket 1 1 Updated 7mo ago

Resources

1
GitHub

Install

npx skillscat add busirocket/agents-skills/busirocket-nextjs

Install via the SkillsCat registry.

About this skill

This skill provides patterns for creating thin, maintainable route handlers in Next.js App Router, enforcing separation of concerns by keeping handlers focused on input validation and response formatting while delegating business logic to service functions. It standardizes JSON response shapes and HTTP status codes, and clarifies server versus client component boundaries. Use it when building or refactoring API endpoints in Next.js App Router projects.

SKILL.md

Next.js Route Handlers

Patterns for thin, maintainable route handlers in Next.js App Router.

When to Use

Use this skill when:

  • Creating or refactoring app/api/**/route.ts files
  • Implementing API endpoints
  • Validating request inputs
  • Returning standardized JSON responses
  • Deciding server vs client component boundaries

Non-Negotiables (MUST)

  • Route handlers must be thin: validate input, call a services/ function,
    return a response.
  • No business logic or IO directly in the handler.
  • Never return unvalidated request input.
  • Use standard JSON response shapes: { data } for success,
    { error: { code, message } } for errors.
  • Use appropriate HTTP status codes (200, 201, 204, 400, 401, 403, 404, 409,
    500).

Server vs Client Components

  • app/**/page.tsx and app/**/layout.tsx are Server Components by
    default
    .
  • Use Client Components only when you need: state/event handlers, effects,
    browser-only APIs.
  • 'use client' creates a boundary; keep client islands small.
  • Props from Server -> Client must be serializable.

Rules

Next.js App Router

  • nextjs-server-vs-client - Server vs Client Components (defaults, when to use
    client)
  • nextjs-serializable-props - Props must be serializable from Server to Client
  • nextjs-protecting-server-code - Protecting server-only code from client
    imports
  • nextjs-special-file-exports - Allowed extra exports for Next.js special
    files

Route Handlers

  • nextjs-route-placement - Route handler placement and conflicts with pages
  • nextjs-thin-handler-rule - Thin handler rule (STRICT)
  • nextjs-http-methods - Supported HTTP methods
  • nextjs-caching-model - Caching model for route handlers
  • nextjs-cache-components - Cache Components note for route handlers

API Response Shapes

  • nextjs-response-shapes - Standard JSON response shapes (success/error)
  • nextjs-status-codes - HTTP status codes to use
  • nextjs-response-rules - Rules for API responses (validation, error handling)

Validation

  • nextjs-validation-boundaries - Where validation lives (route handlers,
    services, utils)
  • nextjs-validation-patterns - Validation patterns (unknown inputs, guards)
  • nextjs-validation-helpers - Recommended validation helpers
  • nextjs-validation-rules - Validation rules (no inline types/helpers)

Related Skills

  • busirocket-react - Component patterns and Server/Client boundaries
  • busirocket-validation - Validation strategies (Zod schemas, guard helpers)
  • busirocket-core-conventions - File structure and boundaries

How to Use

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:

  • Brief explanation of why it matters
  • Code examples (correct and incorrect patterns)
  • Additional context and best practices