Community nuqs Best Practices for Next.js
Comprehensive guide for type-safe URL query state management with nuqs in Next.js applications. Contains 42 rules across 8 categories, prioritized by impact to guide code generation, refactoring, and code review.
When to Apply
Reference these guidelines when:
-
Implementing URL-based state with nuqs
-
Setting up nuqs in a Next.js project
-
Configuring parsers for URL parameters
-
Integrating URL state with Server Components
-
Optimizing URL update performance
-
Debugging nuqs-related issues
Rule Categories by Priority
Priority Category Impact Prefix
1 Parser Configuration CRITICAL parser-
2 Adapter & Setup CRITICAL setup-
3 State Management HIGH state-
4 Server Integration HIGH server-
5 Performance Optimization MEDIUM perf-
6 History & Navigation MEDIUM history-
7 Debugging & Testing LOW-MEDIUM debug-
8 Advanced Patterns LOW advanced-
Quick Reference
- Parser Configuration (CRITICAL)
-
parser-use-typed-parsers
-
Use typed parsers for non-string values
-
parser-with-default
-
Use withDefault for non-nullable state
-
parser-enum-validation
-
Use enum parsers for constrained values
-
parser-array-format
-
Choose correct array parser format
-
parser-json-validation
-
Validate JSON parser input
-
parser-date-format
-
Select appropriate date parser
-
parser-index-offset
-
Use parseAsIndex for 1-based URL display
-
parser-hex-colors
-
Use parseAsHex for color values
- Adapter & Setup (CRITICAL)
-
setup-nuqs-adapter
-
Wrap app with NuqsAdapter
-
setup-use-client
-
Add 'use client' directive for hooks
-
setup-import-server
-
Import server utilities from nuqs/server
-
setup-nextjs-version
-
Ensure compatible Next.js version
-
setup-shared-parsers
-
Define shared parsers in dedicated file
- State Management (HIGH)
-
state-use-query-states
-
Use useQueryStates for related parameters
-
state-functional-updates
-
Use functional updates for derived state
-
state-clear-with-null
-
Clear URL parameters with null
-
state-controlled-inputs
-
Handle controlled input value properly
-
state-avoid-derived
-
Avoid derived state from URL parameters
-
state-options-inheritance
-
Use withOptions for parser-level configuration
-
state-setter-return
-
Use setter return value for URL access
- Server Integration (HIGH)
-
server-search-params-cache
-
Use createSearchParamsCache for Server Components
-
server-shallow-false
-
Use shallow:false to trigger server re-renders
-
server-use-transition
-
Integrate useTransition for loading states
-
server-parse-before-get
-
Call parse() before get() in Server Components
-
server-share-parsers
-
Share parsers between client and server
-
server-next15-async
-
Handle async searchParams in Next.js 15+
- Performance Optimization (MEDIUM)
-
perf-throttle-updates
-
Throttle rapid URL updates
-
perf-clear-on-default
-
Use clearOnDefault for clean URLs
-
perf-avoid-rerender
-
Memoize components using URL state
-
perf-serialize-utility
-
Use createSerializer for link URLs
-
perf-debounce-search
-
Debounce search input before URL update
- History & Navigation (MEDIUM)
-
history-push-navigation
-
Use history:push for navigation-like state
-
history-replace-ephemeral
-
Use history:replace for ephemeral state
-
history-scroll-behavior
-
Control scroll behavior on URL changes
-
history-back-sync
-
Handle browser back/forward navigation
- Debugging & Testing (LOW-MEDIUM)
-
debug-enable-logging
-
Enable debug logging for troubleshooting
-
debug-common-errors
-
Diagnose common nuqs errors
-
debug-testing
-
Test components with URL state
- Advanced Patterns (LOW)
-
advanced-custom-parsers
-
Create custom parsers for complex types
-
advanced-url-keys
-
Use urlKeys for shorter URLs
-
advanced-eq-function
-
Implement eq function for object parsers
-
advanced-framework-adapters
-
Use framework-specific adapters
How to Use
Read individual reference files for detailed explanations and code examples:
-
Section definitions - Category structure and impact levels
-
Rule template - Template for adding new rules
Reference Files
File Description
AGENTS.md Complete compiled guide with all rules
references/_sections.md Category definitions and ordering
assets/templates/_template.md Template for new rules
metadata.json Version and reference information