Web Dev Tools

State Management

Client-side state libraries for React (and a few that aren't React-specific).

For most apps in 2026 the answer is "use server state via TanStack Query / RSC, plus a small client store for UI." Redux's mind-share has shifted heavily to Zustand and Jotai.

React

  • Zustand — tiny store with a React-friendly API. The default for app-wide UI state.
  • Jotai — atomic state, derived atoms, suspense-friendly. Great for fine-grained component state.
  • Redux Toolkit (RTK) — still huge in enterprise codebases. RTK Query is solid for data fetching.
  • Valtio — proxy-based, mutable-feeling API. Niche but loved.
  • Legend State — fine-grained, signals-based, fast. Persistence + sync built in.
  • TanStack Store — minimal store from the TanStack family; pairs well with Router/Query.
  • Nanostores — tiny universal stores, good in Astro / multi-framework.
  • MobX — observable-based; mature, niche compared to its peak.

Vue

  • Pinia — official Vue store; replaced Vuex.
  • VueUse — composables include useStorage etc. that often replace dedicated stores.

Svelte

  • Built-in $state rune in Svelte 5 — for many apps, no library needed.
  • Svelte stores for cross-component state.

Universal / framework-agnostic signals

  • Preact Signals — tiny, very fast.
  • TC39 Signals proposal — still in flight; libraries are converging on signals as the underlying primitive.

Pick this if…

  • You want one library and to move on: Zustand.
  • You need atomic, derived state: Jotai.
  • You're in an existing Redux codebase: RTK.
  • You want offline-first / sync: Legend State.

On this page