---
name: nextjs-patterns
type: reference
description: "Comprehensive Next.js development patterns for App Router, Server Components, TypeScript, and Tailwind CSS. Covers foundational principles, data fetching, routing, performance, and an 8-phase development workflow. Also includes Server Actions and Metadata patterns."
paths: ["/*.tsx", "/.jsx", "**/next.config.", "/app//.ts", "**/tailwind.config."]
when_to_use: "Building or optimizing Next.js 14+ / 15+ applications with App Router, Server Components, streaming, or Server Actions."
allowed-tools: Read, Glob, Grep, Write, Edit, Bash
user-invocable: true
effort: 3
Next.js Development Patterns
Comprehensive patterns and best practices for Next.js 14+ / 15+ App Router architecture, Server Components, and modern full-stack React development.
1. Foundational Principles
Server vs Client Components
- Server (Default): Use for data fetching, layouts, and static content.
- Client ('use client'): Use for interactivity (useState, useEffect), event handlers, and browser-only APIs.
- Decision Rule: Stay on the server as long as possible. Split components so the interactive "leaf nodes" are client-side while the data-heavy "branch nodes" remain on the server.
Routing & Organization
- App Router: Use the
app/ directory for file-based routing.
- Route Groups:
(group-name) for organization without affecting URL structure.
- Special Files:
page.tsx, layout.tsx, loading.tsx, error.tsx, not-found.tsx.
- Advanced Routing: Parallel routes (
@slot) and Intercepting routes ((.)).
2. Data Fetching & Caching
Strategy Matrix
| Pattern |
Use Case |
Implementation |
| Static |
Blog posts, marketing |
Cached at build time |
| ISR |
Products, news |
revalidate: 60 |
| Dynamic |
User dashboards, search |
no-store or force-dynamic |
Patterns
- Server Fetching: Fetch data directly in Server Components using
async/await.
- Streaming: Use
Suspense and loading.tsx to stream UI to the client.
- Server Actions: Perform mutations with
use server functions. Validate with Zod.
3. 8-Phase Development Workflow
Phase 1: Project Setup
Scaffold with @app-builder, configure TypeScript, and set up ESLint/Prettier.
Phase 2: Component Architecture
Design hierarchy and implement base layout components using @frontend-developer and @react-patterns.
Phase 3: Styling & Design
Configure Tailwind CSS v4 and design tokens using @tailwind-patterns and @frontend-design.
Phase 4: Data Fetching
Implement Server Component data fetching and set up React Query/SWR if client-side fetching is needed.
Phase 5: Routing & Navigation
Set up file-based routing, dynamic routes, and handle redirects/guards.
Phase 6: Forms & Validation
Use React Hook Form and Zod for robust, type-safe data entry.
Phase 7: Testing
Write unit/integration tests with Vitest and E2E flows with @playwright-skill.
Phase 8: Optimization & Deploy
Analyze bundle size, optimize images with next/image, and deploy to Vercel/similar.
4. Performance & Metadata
- Images: Always use
next/image. Set priority for LCP elements.
- Dynamic Imports: Use for heavy client-side libraries.
- Metadata API: Use
generateMetadata for dynamic SEO tags per route.
Resources & Anti-Patterns
- implementation-playbook.md: Detailed code examples for every pattern.
- Anti-Pattern: Using
'use client' at the top level of every file.
- Anti-Pattern: Fetching data inside
useEffect for information available on first load.
Guidance: If you need deeper walkthroughs, refer to the resources/ folder within this skill.
1---2name: nextjs-patterns3description: ---4---5---6name: nextjs-patterns7type: reference8description: "Comprehensive Next.js development patterns for App Router, Server Components, TypeScript, and Tailwind CSS. Covers foundational principles, data fetching, routing, performance, and an 8-phase development workflow. Also includes Server Actions and Metadata patterns."9paths: ["**/*.tsx", "**/*.jsx", "**/next.config.*", "**/app/**/*.ts", "**/tailwind.config.*"]10when_to_use: "Building or optimizing Next.js 14+ / 15+ applications with App Router, Server Components, streaming, or Server Actions."11allowed-tools: Read, Glob, Grep, Write, Edit, Bash12user-invocable: true13effort: 314---1516# Next.js Development Patterns1718Comprehensive patterns and best practices for Next.js 14+ / 15+ App Router architecture, Server Components, and modern full-stack React development.1920---2122## 1. Foundational Principles2324### Server vs Client Components25- **Server (Default):** Use for data fetching, layouts, and static content.26- **Client ('use client'):** Use for interactivity (useState, useEffect), event handlers, and browser-only APIs.27- **Decision Rule:** Stay on the server as long as possible. Split components so the interactive "leaf nodes" are client-side while the data-heavy "branch nodes" remain on the server.2829### Routing & Organization30- **App Router:** Use the `app/` directory for file-based routing.31- **Route Groups:** `(group-name)` for organization without affecting URL structure.32- **Special Files:** `page.tsx`, `layout.tsx`, `loading.tsx`, `error.tsx`, `not-found.tsx`.33- **Advanced Routing:** Parallel routes (`@slot`) and Intercepting routes (`(.)`).3435---3637## 2. Data Fetching & Caching3839### Strategy Matrix40| Pattern | Use Case | Implementation |41|---------|----------|----------------|42| **Static** | Blog posts, marketing | Cached at build time |43| **ISR** | Products, news | `revalidate: 60` |44| **Dynamic** | User dashboards, search | `no-store` or `force-dynamic` |4546### Patterns47- **Server Fetching:** Fetch data directly in Server Components using `async/await`.48- **Streaming:** Use `Suspense` and `loading.tsx` to stream UI to the client.49- **Server Actions:** Perform mutations with `use server` functions. Validate with Zod.5051---5253## 3. 8-Phase Development Workflow5455### Phase 1: Project Setup56Scaffold with `@app-builder`, configure TypeScript, and set up ESLint/Prettier.5758### Phase 2: Component Architecture59Design hierarchy and implement base layout components using `@frontend-developer` and `@react-patterns`.6061### Phase 3: Styling & Design62Configure Tailwind CSS v4 and design tokens using `@tailwind-patterns` and `@frontend-design`.6364### Phase 4: Data Fetching65Implement Server Component data fetching and set up React Query/SWR if client-side fetching is needed.6667### Phase 5: Routing & Navigation68Set up file-based routing, dynamic routes, and handle redirects/guards.6970### Phase 6: Forms & Validation71Use React Hook Form and Zod for robust, type-safe data entry.7273### Phase 7: Testing74Write unit/integration tests with Vitest and E2E flows with `@playwright-skill`.7576### Phase 8: Optimization & Deploy77Analyze bundle size, optimize images with `next/image`, and deploy to Vercel/similar.7879---8081## 4. Performance & Metadata8283- **Images:** Always use `next/image`. Set `priority` for LCP elements.84- **Dynamic Imports:** Use for heavy client-side libraries.85- **Metadata API:** Use `generateMetadata` for dynamic SEO tags per route.8687---8889## Resources & Anti-Patterns9091- **implementation-playbook.md:** Detailed code examples for every pattern.92- **Anti-Pattern:** Using `'use client'` at the top level of every file.93- **Anti-Pattern:** Fetching data inside `useEffect` for information available on first load.9495> **Guidance:** If you need deeper walkthroughs, refer to the `resources/` folder within this skill.