nextjs-best-practices

sickn33/antigravity-awesome-skills · updated Apr 8, 2026

$npx skills add https://github.com/sickn33/antigravity-awesome-skills --skill nextjs-best-practices
0 commentsdiscussion
summary

Next.js App Router development patterns covering server/client components, data fetching, and routing.

  • Server Components are the default; use Client Components only for interactivity (useState, event handlers, forms)
  • Data fetching belongs in Server Components with three caching strategies: static (build-time), ISR (time-based revalidation), and dynamic (no-store)
  • File conventions organize routes: page.tsx for UI, layout.tsx for shared structure, loading.tsx and error.tsx for states,
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.

When to Use

This skill is applicable to execute the workflow or actions described in the overview.

Discussion

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

Ratings

4.572 reviews
  • Yusuf Torres· Dec 28, 2024

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

  • Maya Sanchez· Dec 16, 2024

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

  • Evelyn Patel· Dec 12, 2024

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

  • Maya Chawla· Dec 8, 2024

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

  • Shikha Mishra· Dec 4, 2024

    We added nextjs-best-practices from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Chinedu Mehta· Nov 27, 2024

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

  • Rahul Santra· Nov 23, 2024

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

  • Maya Gonzalez· Nov 23, 2024

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

  • Sophia Khanna· Nov 19, 2024

    We added nextjs-best-practices from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Aanya Shah· Nov 19, 2024

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

showing 1-10 of 72

1 / 8