Share application state
Coordinate local state, shared stores, URL state, and persistent client data.
Options for this task
Jump to a library or tool (12)
Immutable.js
Library / toolPersistent immutable data structures for JavaScript.
- Good for
- Managing complex collections while retaining previous versions of state.
Jotai
Library / toolAtomic state management for React.
- Good for
- Composing shared state from small independently managed atoms.
MobX
Library / toolObservable state management with automatic dependency tracking.
- Good for
- Deriving reactive UI updates from mutable application models.
MobX-State-Tree
Library / toolA state container combining typed models with observable state.
- Good for
- Structuring application state around models, actions, and snapshots.
Nano Stores
Library / toolSmall reactive stores that work across several UI frameworks.
- Good for
- Sharing focused pieces of state without a large state-management setup.
nuqs
Library / toolType-safe state management stored in URL search parameters.
- Good for
- Keeping filters, pagination, and shareable view state in the address bar.
Recoil
Library / toolAn atom-and-selector state-management library originally developed for React.
- Good for
- Understanding or maintaining applications that already use Recoil.
Redux Toolkit
Library / toolThe recommended tooling for writing Redux state logic.
- Good for
- Managing shared state with predictable actions, reducers, and debugging support.
TinyBase
Library / toolA reactive data store designed for local-first applications.
- Good for
- Managing structured client data with reactive views and persistence.
Valtio
Library / toolProxy-based state management for React and JavaScript.
- Good for
- Writing mutable-looking state updates with reactive snapshots for rendering.
XState Store
Library / toolA lightweight state store based on events and explicit transitions.
- Good for
- Managing local or shared state with clearly defined update events.
Zustand
Library / toolA small state-management library with hook-based access.
- Good for
- Sharing application state through a straightforward external store.
Before you decide
Try a small, realistic example. Check the runtime, accessibility, maintenance, and license requirements for the features you need.