nextjs-expert
SKILL.md
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
appdirectory, 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
fetchAPI 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
Consolidated Skills
This expert skill consolidates 1 individual skills:
- nextjs-expert
Iron Laws
- 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. - 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. - ALWAYS await async Request APIs (
cookies(),headers(),params,searchParams) in Next.js 15+ — synchronous access throws in strict mode and breaks PPR behavior. - NEVER omit
error.tsxandloading.tsxat route segments — without them, errors bubble to root and unmount the entire page; segment-level files enable granular error recovery and streaming UI. - ALWAYS use
next/imagewithfillandsizesfor 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:
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.
Weekly Installs
57
Repository
oimiragieo/agent-studioGitHub Stars
16
First Seen
Jan 27, 2026
Security Audits
Installed on
github-copilot54
gemini-cli53
codex53
opencode53
cursor53
amp52