nuqs
pproenca/dot-skills
Type-safe URL query state management best practices for Next.js and React frameworks.
What is nuqs?
nuqs is a library for managing URL-based state in React and Next.js with full type safety. Use this skill when implementing, reviewing, or refactoring code that uses nuqs for URL parameters, search state, or query-based state management across Next.js, React Router, TanStack Router, Remix, and plain React.
- Configure typed parsers for URL parameters with validation and defaults
- Set up NuqsAdapter and 'use client' directives for proper initialization
- Manage related URL parameters efficiently with useQueryStates
- Integrate URL state with Next.js Server Components using createSearchParamsCache
- Optimize performance with throttling, debouncing, and key isolation
- Share parser definitions across libraries using Standard Schema
How to install nuqs
npx skills add https://github.com/pproenca/dot-skills --skill nuqs- nuqs v2.5 or later installed
- Next.js 13+ (or compatible React framework)
- Understanding of React hooks and URL search parameters
How to use nuqs
- 1.Define typed parsers in a shared file using nuqs parser utilities
- 2.Wrap your app with NuqsAdapter at the root level
- 3.Add 'use client' directive to components using useQueryState or useQueryStates hooks
- 4.Use useQueryStates for related parameters to reduce re-renders
- 5.Apply limitUrlUpdates for throttling rapid updates in search or filter scenarios
- 6.For Server Components, use createSearchParamsCache to parse URL parameters
- 7.Test components by mocking URL search parameters in your test setup
Use cases
- Building search interfaces with URL-synced filters and pagination
- Managing form state in URLs for shareable, bookmarkable forms
- Implementing multi-step wizards with URL-based step tracking
- Creating filterable product listings with persistent URL parameters
- Syncing complex application state across browser tabs via URL
- Next.js developers building state-driven applications
- React developers using React Router or TanStack Router
- Full-stack engineers integrating URL state with Server Components
- Teams sharing validation schemas across tRPC, forms, and routing
- Performance-conscious developers optimizing rapid state updates
nuqs FAQ
Use useQueryStates when managing related parameters together to batch updates and reduce re-renders. Use individual useQueryState calls only for independent parameters.
Use clearOnDefault option to automatically remove parameters from the URL when they match their default value, keeping URLs clean.
history:push adds a new entry to the browser history (default), allowing back-button navigation. history:replace overwrites the current entry, useful for intermediate states.
Define parsers using Standard Schema (v2.5+) in a shared file, then use them with nuqs, tRPC, and form libraries that support Standard Schema.
Use createSearchParamsCache or createLoader to parse URL parameters in Server Components, and set shallow:false on useQueryState to trigger server re-renders.
Full instructions (SKILL.md)
Source of truth, from pproenca/dot-skills.
name: nuqs description: nuqs (type-safe URL query state) best practices for Next.js and other React frameworks. This skill should be used when writing, reviewing, or refactoring code that uses nuqs for URL state management. Triggers on tasks involving useQueryState, useQueryStates, search params, URL state, query parameters, nuqs parsers, limitUrlUpdates, Standard Schema, NuqsAdapter, or Next.js routing with state.
Community nuqs Best Practices for Next.js & React
Comprehensive guide for type-safe URL query state management with nuqs across Next.js, React Router, TanStack Router, Remix, and plain React. Covers nuqs v2.5–v2.9 features. Contains 39 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 or React Router project
- Configuring parsers for URL parameters
- Integrating URL state with Server Components
- Optimizing URL update performance (
limitUrlUpdates, key isolation) - Sharing parser definitions with tRPC / TanStack Router / forms via Standard Schema
- 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
1. Parser Configuration (CRITICAL)
parser-use-typed-parsers— Use typed parsers for non-string valuesparser-with-default— Use withDefault for non-nullable stateparser-enum-validation— Use enum parsers for constrained valuesparser-array-format— Choose correct array parser formatparser-json-validation— Validate JSON parser inputparser-date-format— Select appropriate date parserparser-index-offset— Use parseAsIndex for 1-based URL display
2. Adapter & Setup (CRITICAL)
setup-nuqs-adapter— Wrap app with NuqsAdaptersetup-use-client— Add 'use client' directive for hookssetup-import-server— Import server utilities from nuqs/serversetup-nextjs-version— Ensure compatible Next.js versionsetup-shared-parsers— Define shared parsers in dedicated filesetup-default-options— Configure app-wide defaults on NuqsAdapter (v2.5+)
3. State Management (HIGH)
state-use-query-states— Use useQueryStates for related parametersstate-clear-with-null— Clear URL parameters with nullstate-avoid-derived— Avoid derived state from URL parametersstate-options-inheritance— Use withOptions for parser-level configurationstate-setter-return— Use setter return value for URL accessstate-standard-schema— Use Standard Schema for cross-library validation (v2.5+)
4. Server Integration (HIGH)
server-search-params-cache— Use createSearchParamsCache (or createLoader) for Server Componentsserver-shallow-false— Use shallow:false to trigger server re-rendersserver-use-transition— Integrate useTransition for loading statesserver-parse-before-get— Call parse() before get() in Server Componentsserver-next15-async— Handle async searchParams in Next.js 15+
5. Performance Optimization (MEDIUM)
perf-throttle-updates— Throttle rapid URL updates withlimitUrlUpdatesperf-debounce-search— Debounce search input with built-inlimitUrlUpdatesperf-clear-on-default— Use clearOnDefault for clean URLsperf-avoid-rerender— Memoize components using URL state (Next.js)perf-key-isolation— Rely on key isolation outside Next.js (v2.5+)perf-serialize-utility— Use createSerializer for link URLs
6. History & Navigation (MEDIUM)
history-push-navigation— Choose history:push vs history:replacehistory-scroll-behavior— Control scroll behavior on URL changes
7. Debugging & Testing (LOW-MEDIUM)
debug-enable-logging— Enable debug logging for troubleshootingdebug-testing— Test components with URL state
8. Advanced Patterns (LOW)
advanced-custom-parsers— Create custom parsers for complex typesadvanced-url-keys— Use urlKeys for shorter URLsadvanced-eq-function— Implement eq function for object parsersadvanced-framework-adapters— Use framework-specific adaptersadvanced-process-url-search-params— Canonicalize URL shape withprocessUrlSearchParams(v2.6+)
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 |
Related skills
More from pproenca/dot-skills and the wider catalog.

react-hook-form
React Hook Form performance optimization guide with 35 best-practice rules across form configuration, subscriptions, and validation.

react-refactor
Architectural refactoring guide for React applications covering component architecture, state architecture, hook patterns, component decomposition, coupling and cohesion, data flow, and refactoring safety. Use when refactoring React codebases, reviewing PRs for architectural issues, decomposing oversized components, or improving module boundaries. Does NOT cover React 19 API usage (see react skill) or performance optimization (see react-optimise skill).

shadcn
shadcn/ui component library best practices and patterns (formerly shadcn-ui). This skill should be used when writing, reviewing, or refactoring shadcn/ui components to ensure proper architecture, accessibility, and performance. Triggers on tasks involving Radix primitives, Tailwind styling, form validation with React Hook Form, data tables, theming, or component composition patterns.

terminal-ui
Terminal User Interface (TUI) performance and UX guidelines for TypeScript applications using Ink and Clack. This skill should be used when building CLI tools, interactive terminal prompts, or developer tooling with TUI components. Triggers on tasks involving TUI components, CLI prompts, terminal rendering, keyboard input handling, or developer tooling.

typescript
TypeScript performance, tsconfig, type errors, and async patterns optimization.

ui-design
UI/UX and frontend design best practices guidelines (formerly frontend-design). This skill should be used when writing, reviewing, or designing frontend code to ensure accessibility, performance, and usability. Triggers on tasks involving HTML structure, CSS styling, responsive layouts, form design, animations, or accessibility improvements.