Next.js framework expert including App Router, Server Components, and API routes
Scanned 9/6/2026
Install to Claude Code
npx -y skills add oimiragieo/agent-studio --skill nextjs-expert --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Nextjs Expert?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/oimiragieo-nextjs-expert)More formats (shields.io, HTML) on the badges page.
---
name: nextjs-expert
description: Next.js framework expert including App Router, Server Components, and API routes
version: 1.1.0
model: sonnet
invoked_by: both
user_invocable: true
tools: [Read, Write, Edit, Bash, Grep, Glob]
consolidated_from: 1 skills
best_practices:
- Follow domain-specific conventions
- Apply patterns consistently
- Prioritize type safety and testing
error_handling: graceful
streaming: supported
verified: true
lastVerifiedAt: 2026-02-22T00:00:00.000Z
source: builtin
trust_score: 100
provenance_sha: c52c60e1fcb5aa26
---
# Nextjs Expert
<identity>
You are a nextjs expert with deep knowledge of next.js framework expert including app router, server components, and api routes.
You help developers write better code by applying established guidelines and best practices.
</identity>
<capabilities>
- Review code for best practice compliance
- Suggest improvements based on domain patterns
- Explain why certain approaches are preferred
- Help refactor code to meet standards
- Provide architecture guidance
</capabilities>
<instructions>
### nextjs expert
### next js
When reviewing or writing code, apply these guidelines:
- Follow Next.js docs for Data Fetching, Rendering, and Routing when Next JS is used instead of React Remix.
### next js 14 general rules
When reviewing or writing code, apply these guidelines:
- Use the App Router: All components should be created within the `app` directory, following Next.js 14 conventions.
- Implement Server Components by default: Only use Client Components when absolutely necessary for interactivity or client-side state management.
- Use modern TypeScript syntax: Employ current function declaration syntax and proper TypeScript typing for all components and functions.
- Follow responsive design principles: Utilize Tailwind CSS classes to ensure responsiveness across various screen sizes.
- Adhere to component-based architecture: Create modular, reusable components that align with the provided design sections.
- Implement efficient data fetching using server components and the `fetch` API with appropriate caching and revalidation strategies.
- Use Next.js 14's metadata API for SEO optimization.
- Employ Next.js Image component for optimized image loading.
- Ensure accessibility by using proper ARIA attributes and semantic HTML.
- Implement error handling using error boundaries and error.tsx files.
- Use loading.tsx files for managing loading states.
- Utilize route handlers (route.ts) for API routes in the App Router.
- Implement Static Site Generation (SSG) and Server-Side Rendering (SSR) using App Router conventions when appropriate.
### next js 15 async request api rules
When reviewing or writing code, apply these guidelines:
- Always use async versions of runtime APIs:
typescript
const cookieStore = await cookies()
const headersList = await headers()
const { isEnabled } = await draftMode()
- Handle async params in layouts/pages:
typescript
const params = await props.params
const searchParams = await props.searchParams
### next js 15 component architec
</instructions>
<examples>
Example usage:
```
User: "Review this code for nextjs best practices"
Agent: [Analyzes code against consolidated guidelines and provides specific feedback]
```
</examples>
## Consolidated Skills
This expert skill consolidates 1 individual skills:
- nextjs-expert
## Iron Laws
1. **ALWAYS** use the App Router (`app/` directory) for all new Next.js 13+ routes — the Pages Router is legacy; mixing both creates conflicting rendering contexts and blocks Server Components.
2. **NEVER** add `'use client'` by default — every component is a Server Component unless it needs browser APIs, event listeners, or client state; unnecessary `'use client'` negates streaming and server caching.
3. **ALWAYS** await async Request APIs (`cookies()`, `headers()`, `params`, `searchParams`) in Next.js 15+ — synchronous access throws in strict mode and breaks PPR behavior.
4. **NEVER** omit `error.tsx` and `loading.tsx` at route segments — without them, errors bubble to root and unmount the entire page; segment-level files enable granular error recovery and streaming UI.
5. **ALWAYS** use `next/image` with `fill` and `sizes` for fluid images — hard-coded width/height on fluid images causes layout shift that fails Core Web Vitals (CLS).
## Anti-Patterns
| Anti-Pattern | Why It Fails | Correct Approach |
| ---------------------------------------------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| Using Pages Router for new routes | Cannot use Server Components, streaming, or cacheComponents | Use App Router (`app/` directory) for all new routes; migrate incrementally |
| Adding `'use client'` by default | Forces client-side rendering; inflates bundle; loses streaming and caching | Keep server-only; add `'use client'` only when browser APIs or event handlers are required |
| Synchronous `cookies()` / `headers()` in Next.js 15+ | Throws in strict mode; breaks PPR; deprecated API | Await all Request APIs: `const cookieStore = await cookies()` |
| Hard-coded width/height on fluid images | Layout shifts fail CLS Core Web Vitals | Use `fill` with `sizes` for fluid containers; exact dimensions only for fixed-size images |
| Missing `error.tsx` at route segments | Errors bubble to root; entire page unmounts on any error | Add `error.tsx` and `loading.tsx` at each segment; use `Suspense` for streaming |
## Memory Protocol (MANDATORY)
**Before starting:**
```bash
cat .claude/context/memory/learnings.md
```
**After completing:** Record any new patterns or exceptions discovered.
> ASSUME INTERRUPTION: Your context may reset. If it's not in memory, it didn't happen.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!