nextjs-best-practices

davila7/claude-code-templates · updated Apr 8, 2026

$npx skills add https://github.com/davila7/claude-code-templates --skill nextjs-best-practices
0 commentsdiscussion
summary

Server Components by default, client interactivity on demand, with structured data fetching and caching strategies.

  • Server Components handle data fetching and static content; Client Components ('use client') manage forms, state, and event handlers. Split responsibilities when both are needed.
  • Data fetching uses static caching by default, with ISR (time-based revalidation) and dynamic (no-store) options for different freshness requirements.
  • Routing relies on file conventions (page.tsx
skill.md

Next.js Best Practices

Principles for Next.js App Router development.


1. Server vs Client Components

Decision Tree

Does it need...?
├── useState, useEffect, event handlers
│   └── Client Component ('use client')
├── Direct data fetching, no interactivity
│   └── Server Component (default)
└── Both? 
    └── Split: Server parent + Client child

By Default

Type Use
Server Data fetching, layout, static content
Client Forms, buttons, interactive UI

2. Data Fetching Patterns

Fetch Strategy

Pattern Use
Default Static (cached at build)
Revalidate ISR (time-based refresh)
No-store Dynamic (every request)

Data Flow

Source Pattern
Database Server Component fetch
API fetch with caching
User input Client state + server action

3. Routing Principles

File Conventions

File Purpose
page.tsx Route UI
layout.tsx Shared layout
loading.tsx Loading state
error.tsx Error boundary
not-found.tsx 404 page

Route Organization

Pattern Use
Route groups (name) Organize without URL
Parallel routes @slot Multiple same-level pages
Intercepting (.) Modal overlays

4. API Routes

Route Handlers

Method Use
GET Read data
POST Create data
PUT/PATCH Update data
DELETE Remove data

Best Practices

  • Validate input with Zod
  • Return proper status codes
  • Handle errors gracefully
  • Use Edge runtime when possible

5. Performance Principles

Image Optimization

  • Use next/image component
  • Set priority for above-fold
  • Provide blur placeholder
  • Use responsive sizes

Bundle Optimization

  • Dynamic imports for heavy components
  • Route-based code splitting (automatic)
  • Analyze with bundle analyzer

6. Metadata

Static vs Dynamic

Type Use
Static export Fixed metadata
generateMetadata Dynamic per-route

Essential Tags

  • title (50-60 chars)
  • description (150-160 chars)
  • Open Graph images
  • Canonical URL

7. Caching Strategy

Cache Layers

Layer Control
Request fetch options
Data revalidate/tags
Full route route config

Revalidation

Method Use
Time-based revalidate: 60
On-demand revalidatePath/Tag
No cache no-store

8. Server Actions

Use Cases

  • Form submissions
  • Data mutations
  • Revalidation triggers

Best Practices

  • Mark with 'use server'
  • Validate all inputs
  • Return typed responses
  • Handle errors

9. Anti-Patterns

❌ Don't ✅ Do
'use client' everywhere Server by default
Fetch in client components Fetch in server
Skip loading states Use loading.tsx
Ignore error boundaries Use error.tsx
Large client bundles Dynamic imports

10. Project Structure

app/
├── (marketing)/     # Route group
│   └── page.tsx
├── (dashboard)/
│   ├── layout.tsx   # Dashboard layout
│   └── page.tsx
├── api/
│   └── [resource]/
│       └── route.ts
└── components/
    └── ui/

Remember: Server Components are the default for a reason. Start there, add client only when needed.

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.757 reviews
  • Aisha Rao· Dec 28, 2024

    I recommend nextjs-best-practices for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Zara Sanchez· Dec 28, 2024

    nextjs-best-practices reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Tariq Perez· Dec 28, 2024

    Useful defaults in nextjs-best-practices — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Nia Garcia· Dec 24, 2024

    Keeps context tight: nextjs-best-practices is the kind of skill you can hand to a new teammate without a long onboarding doc.

  • Min Malhotra· Dec 20, 2024

    Solid pick for teams standardizing on skills: nextjs-best-practices is focused, and the summary matches what you get after install.

  • Dhruvi Jain· Dec 16, 2024

    nextjs-best-practices is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.

  • Jin Martinez· Dec 16, 2024

    nextjs-best-practices has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Jin Mehta· Nov 27, 2024

    Solid pick for teams standardizing on skills: nextjs-best-practices is focused, and the summary matches what you get after install.

  • Yuki Okafor· Nov 19, 2024

    Registry listing for nextjs-best-practices matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Kofi Bansal· Nov 19, 2024

    nextjs-best-practices is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.

showing 1-10 of 57

1 / 6