Next.js Server Components
Server Components are the default rendering model in Next.js 16 with React 19.
Agent Workflow (MANDATORY)
Before ANY implementation, use TeamCreate to spawn 3 agents:
- fuse-ai-pilot:explore-codebase - Analyze existing component boundaries
- fuse-ai-pilot:research-expert - Verify latest RSC docs via Context7/Exa
- mcp__context7__query-docs - Check Next.js 16 RSC patterns
After implementation, run fuse-ai-pilot:sniper for validation.
Overview
When to Use
- Deciding between Server and Client Components
- Fetching data directly in components without API routes
- Implementing streaming and progressive rendering
- Passing data across the server/client boundary
- Using async components with direct database access
Why Server Components
| Feature | Benefit | |---------|---------| | Zero client JS | Components never ship to the browser bundle | | Direct data access | Query databases, read files without API layer | | Streaming | Progressive rendering with Suspense boundaries | | Automatic code splitting | Client Components are lazy-loaded by default | | SEO-friendly | Full HTML rendered on the server |
Critical Rules
- Server Components are default - No directive needed
'use client'only when needed - Hooks, events, browser APIs- Never import server-only into client - Use
server-onlypackage - Props must be serializable - No functions, classes, or Dates across boundary
- Async components are server-only - Client Components cannot be async
- Colocate data fetching - Fetch where the data is consumed
Best Practices
- Push client boundaries down - Keep
'use client'as deep as possible - Composition pattern - Pass Server Components as
childrento Client - Use
server-only- Prevent accidental client imports of secrets - Parallel fetching - Use
Promise.all()for independent data - Cache with
use cache- Cache expensive server computations - Stream with Suspense - Wrap slow components for progressive loading
Reference Guide
| Need | Reference | |------|-----------| | Server vs Client patterns | [rsc-patterns.md](references/rsc-patterns.md) | | Streaming and Suspense | [streaming.md](references/streaming.md) | | Data fetching in RSC | [rsc-patterns.md](references/rsc-patterns.md) | | Loading states | [streaming.md](references/streaming.md) |