
next-best-practices
✓ Official★ 12by sentry · part of getsentry/webvitals.com
Next.js best practices - file conventions, RSC boundaries, data patterns, async APIs, metadata, error handling, route handlers, image/font optimization,…
This is the playbook your agent receives when the skill activates — you don't need to read it to use the skill, but it's here to audit before installing.
by sentry
Next.js best practices - file conventions, RSC boundaries, data patterns, async APIs, metadata, error handling, route handlers, image/font optimization,…
npx skills add https://github.com/getsentry/webvitals.com --skill next-best-practices
Download ZIPGitHub12
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
paramsandsearchParams -
Async
cookies()andheaders() -
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','use server'(React) -
'use cache'(Next.js)
Functions
See functions.md for:
-
Navigation hooks:
useRouter,usePathname,useSearchParams,useParams -
Server functions:
cookies,headers,draftMode,after -
Generate functions:
generateStaticParams,generateMetadata
Error Handling
See error-handling.md for:
-
error.tsx,global-error.tsx,not-found.tsx -
redirect,permanentRedirect,notFound -
forbidden,unauthorized(auth errors) -
unstable_rethrowfor catch blocks
Data Patterns
See data-patterns.md for:
-
Server Components vs Server Actions vs Route Handlers
-
Avoiding data waterfalls (
Promise.all, Suspense, preload) -
Client component data fetching
Route Handlers
See route-handlers.md for:
-
route.tsbasics -
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
-
generateMetadatafunction -
OG image generation with
next/og -
File-based metadata conventions
Image Optimization
See image.md for:
-
Always use
next/imageover<img> -
Remote images configuration
-
Responsive
sizesattribute -
Blur placeholders
-
Priority loading for LCP
Font Optimization
See font.md for:
-
next/fontsetup -
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:
-
next/scriptvs native script tags -
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
useSearchParamsandusePathname -
Which hooks require Suspense boundaries
Parallel & Intercepting Routes
See parallel-routes.md for:
-
Modal patterns with
@slotand(.)interceptors -
default.tsxfor fallbacks -
Closing modals correctly with
router.back()
Self-Hosting
See self-hosting.md for:
-
output: 'standalone'for Docker -
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
npx skills add https://github.com/getsentry/webvitals.com --skill next-best-practicesRun this in your project — your agent picks the skill up automatically.
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.