Overview
paramsync>overview

paramsync Documentation

A high-performance, type-safe URL Search Parameters state manager engineered for React 18+ and Next.js App Router applications.

0ms

0ms Typing Lag

Local input state responds instantly while URL updates are smoothly debounced in the background.

Auto-Purge

Clean URL Policy

Empty strings, empty arrays, and defaults are purged automatically from query strings.

Atomic

Batch Transitions

Commit multi-filter drawer updates atomically in one single Next.js navigation transition.

Installation

Install paramsync via your preferred package manager:

terminal
npm install paramsync
# or
pnpm add paramsync
# or
yarn add paramsync
main|paramsync
Shell ScriptLn 5, Col 1

Quick Start Example

Pair useQueryState with built-in parsers to bind state directly to URL search params:

TSSearchFeed.tsx
'use client';
 
import { useQueryState, parseAsString, parseAsInteger } from 'paramsync';
 
export default function SearchFeed() {
// Live search with 300ms debounce
const [search, setSearch] = useQueryState('q', parseAsString.withDefault(''), {
debounceMs: 300,
});
 
// Numeric page index
const [page, setPage] = useQueryState('page', parseAsInteger.withDefault(1));
 
return (
<div>
<input
type="text"
value={search}
onChange={(e) => {
setPage(1); // auto-reset page on search
setSearch(e.target.value);
}}
placeholder="Filter results..."
/>
</div>
);
}
main|paramsync
TypeScript JSXLn 27, Col 1

Built-in Parsers Reference

Each parser enforces strict runtime validation, TypeScript type narrowing, and Clean URL policy purging: