Cursor Rules for
Next.js

This rule explains Next.js conventions and best practices for fullstack development.
Back to rules
Type
Fullstack
Language(s)
JavaScript
TypeScript
Tags
Framework
Stats
340 views
30 copies
6 downloads
nextjs.mdc
---
description: This rule explains Next.js conventions and best practices for fullstack development.
globs: *.{js,jsx,ts,tsx}
alwaysApply: false
---

# Next.js rules

- Use the App Router structure with `page.tsx` files in route directories.
- Client components must be explicitly marked with `'use client'` at the top of the file.
- Use kebab-case for directory names (e.g., `components/auth-form`) and PascalCase for component files.
- Prefer named exports over default exports, i.e. `export function Button() { /* ... */ }` instead of `export default function Button() { /* ... */ }`.
- Minimize `'use client'` directives:
  - Keep most components as React Server Components (RSC)
  - Only use client components when you need interactivity and wrap in `Suspense` with fallback UI
  - Create small client component wrappers around interactive elements
- Avoid unnecessary `useState` and `useEffect` when possible:
  - Use server components for data fetching
  - Use React Server Actions for form handling
  - Use URL search params for shareable state
- Use `nuqs` for URL search param state management