nextjs-expert

SKILL.md

Nextjs Expert

next js

When reviewing or writing code, apply these guidelines:

  • Follow Next.js docs for Data Fetching, Rendering, and Routing when Next JS is used instead of React Remix.

next js 14 general rules

When reviewing or writing code, apply these guidelines:

  • Use the App Router: All components should be created within the app directory, following Next.js 14 conventions.
  • Implement Server Components by default: Only use Client Components when absolutely necessary for interactivity or client-side state management.
  • Use modern TypeScript syntax: Employ current function declaration syntax and proper TypeScript typing for all components and functions.
  • Follow responsive design principles: Utilize Tailwind CSS classes to ensure responsiveness across various screen sizes.
  • Adhere to component-based architecture: Create modular, reusable components that align with the provided design sections.
  • Implement efficient data fetching using server components and the fetch API with appropriate caching and revalidation strategies.
  • Use Next.js 14's metadata API for SEO optimization.
  • Employ Next.js Image component for optimized image loading.
  • Ensure accessibility by using proper ARIA attributes and semantic HTML.
  • Implement error handling using error boundaries and error.tsx files.
  • Use loading.tsx files for managing loading states.
  • Utilize route handlers (route.ts) for API routes in the App Router.
  • Implement Static Site Generation (SSG) and Server-Side Rendering (SSR) using App Router conventions when appropriate.

next js 15 async request api rules

When reviewing or writing code, apply these guidelines:

  • Always use async versions of runtime APIs: typescript const cookieStore = await cookies() const headersList = await headers() const { isEnabled } = await draftMode()
  • Handle async params in layouts/pages: typescript const params = await props.params const searchParams = await props.searchParams

next js 15 component architec

Consolidated Skills

This expert skill consolidates 1 individual skills:

  • nextjs-expert

Iron Laws

  1. ALWAYS use the App Router (app/ directory) for all new Next.js 13+ routes — the Pages Router is legacy; mixing both creates conflicting rendering contexts and blocks Server Components.
  2. NEVER add 'use client' by default — every component is a Server Component unless it needs browser APIs, event listeners, or client state; unnecessary 'use client' negates streaming and server caching.
  3. ALWAYS await async Request APIs (cookies(), headers(), params, searchParams) in Next.js 15+ — synchronous access throws in strict mode and breaks PPR behavior.
  4. NEVER omit error.tsx and loading.tsx at route segments — without them, errors bubble to root and unmount the entire page; segment-level files enable granular error recovery and streaming UI.
  5. ALWAYS use next/image with fill and sizes for fluid images — hard-coded width/height on fluid images causes layout shift that fails Core Web Vitals (CLS).

Anti-Patterns

Anti-Pattern Why It Fails Correct Approach
Using Pages Router for new routes Cannot use Server Components, streaming, or cacheComponents Use App Router (app/ directory) for all new routes; migrate incrementally
Adding 'use client' by default Forces client-side rendering; inflates bundle; loses streaming and caching Keep server-only; add 'use client' only when browser APIs or event handlers are required
Synchronous cookies() / headers() in Next.js 15+ Throws in strict mode; breaks PPR; deprecated API Await all Request APIs: const cookieStore = await cookies()
Hard-coded width/height on fluid images Layout shifts fail CLS Core Web Vitals Use fill with sizes for fluid containers; exact dimensions only for fixed-size images
Missing error.tsx at route segments Errors bubble to root; entire page unmounts on any error Add error.tsx and loading.tsx at each segment; use Suspense for streaming

Memory Protocol (MANDATORY)

Before starting:

cat .claude/context/memory/learnings.md

After completing: Record any new patterns or exceptions discovered.

ASSUME INTERRUPTION: Your context may reset. If it's not in memory, it didn't happen.

Weekly Installs
57
GitHub Stars
16
First Seen
Jan 27, 2026
Installed on
github-copilot54
gemini-cli53
codex53
opencode53
cursor53
amp52