Openclaw-master-skills next-best-practices
Next.js best practices - file conventions, RSC boundaries, data patterns, async APIs, metadata, error handling, route handlers, image/font optimization, bundling
install
source · Clone the upstream repo
git clone https://github.com/LeoYeAI/openclaw-master-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/LeoYeAI/openclaw-master-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/next-best-practices" ~/.claude/skills/leoyeai-openclaw-master-skills-next-best-practices && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/LeoYeAI/openclaw-master-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/next-best-practices" ~/.openclaw/skills/leoyeai-openclaw-master-skills-next-best-practices && rm -rf "$T"
manifest:
skills/next-best-practices/SKILL.mdtags
source content
Next.js Best Practices
Apply these rules when writing or reviewing Next.js code.
File Conventions
See file-conventions.md for:
- Project structure and special files
- Route segments (dynamic, catch-all, groups)
- Parallel and intercepting routes
- Middleware rename in v16 (middleware → proxy)
RSC Boundaries
Detect invalid React Server Component patterns.
See rsc-boundaries.md for:
- Async client component detection (invalid)
- Non-serializable props detection
- Server Action exceptions
Async Patterns
Next.js 15+ async API changes.
See async-patterns.md for:
- Async
andparamssearchParams - Async
andcookies()headers() - Migration codemod
Runtime Selection
See runtime-selection.md for:
- Default to Node.js runtime
- When Edge runtime is appropriate
Directives
See directives.md for:
,'use client'
(React)'use server'
(Next.js)'use cache'
Functions
See functions.md for:
- Navigation hooks:
,useRouter
,usePathname
,useSearchParamsuseParams - Server functions:
,cookies
,headers
,draftModeafter - Generate functions:
,generateStaticParamsgenerateMetadata
Error Handling
See error-handling.md for:
,error.tsx
,global-error.tsxnot-found.tsx
,redirect
,permanentRedirectnotFound
,forbidden
(auth errors)unauthorized
for catch blocksunstable_rethrow
Data Patterns
See data-patterns.md for:
- Server Components vs Server Actions vs Route Handlers
- Avoiding data waterfalls (
, Suspense, preload)Promise.all - Client component data fetching
Route Handlers
See route-handlers.md for:
basicsroute.ts- GET handler conflicts with
page.tsx - Environment behavior (no React DOM)
- When to use vs Server Actions
Metadata & OG Images
See metadata.md for:
- Static and dynamic metadata
functiongenerateMetadata- OG image generation with
next/og - File-based metadata conventions
Image Optimization
See image.md for:
- Always use
overnext/image<img> - Remote images configuration
- Responsive
attributesizes - Blur placeholders
- Priority loading for LCP
Font Optimization
See font.md for:
setupnext/font- Google Fonts, local fonts
- Tailwind CSS integration
- Preloading subsets
Bundling
See bundling.md for:
- Server-incompatible packages
- CSS imports (not link tags)
- Polyfills (already included)
- ESM/CommonJS issues
- Bundle analysis
Scripts
See scripts.md for:
vs native script tagsnext/script- Inline scripts need
id - Loading strategies
- Google Analytics with
@next/third-parties
Hydration Errors
See hydration-error.md for:
- Common causes (browser APIs, dates, invalid HTML)
- Debugging with error overlay
- Fixes for each cause
Suspense Boundaries
See suspense-boundaries.md for:
- CSR bailout with
anduseSearchParamsusePathname - Which hooks require Suspense boundaries
Parallel & Intercepting Routes
See parallel-routes.md for:
- Modal patterns with
and@slot
interceptors(.)
for fallbacksdefault.tsx- Closing modals correctly with
router.back()
Self-Hosting
See self-hosting.md for:
for Dockeroutput: 'standalone'- Cache handlers for multi-instance ISR
- What works vs needs extra setup
Debug Tricks
See debug-tricks.md for:
- MCP endpoint for AI-assisted debugging
- Rebuild specific routes with
--debug-build-paths