Back to Articles
Zustand vs Redux in 2024: An Honest Comparison

React · State

Zustand vs Redux in 2024: An Honest Comparison

January 2024 · 9 min read

State libraries are not religions. On Hafez Insurance admin surfaces (reinsurance, media review) Redux Toolkit paid for itself. On newer Next.js apps with TanStack Query (Nezam enrollment and similar), Zustand stayed thin and pleasant. The honest comparison is about team shape and async boundaries, not Twitter benchmarks.

When Redux Toolkit still wins

  • Multiple features share complex, cross-cutting client state (filters + selection + draft entities)
  • You need middleware habits: logging, analytics, optimistic flows with rollbacks
  • Several developers touch the same domain and benefit from explicit slice conventions
  • DevTools time-travel actually gets used in QA for dense admin UIs

Insurance ops panels are dense. RTK Query or Axios layers plus normalized entities reduce “who mutated this row?” moments.

When Zustand is the better default

  • Most server state already lives in TanStack Query / SWR
  • You only need a few UI stores (wizard step, sidebar, theme overrides)
  • Bundle and boilerplate budget matters for mini apps / WebViews
  • The team is small and conventions can stay lightweight

Zustand shines as a client cache for UI, not as a replacement for a server cache.

The mistake I see most

Putting fetched lists into Redux/Zustand and then fighting cache invalidation. If the source of truth is the API, let the async library own it. Keep global client stores for what the server cannot know: ephemeral selection, multi-step drafts before submit, layout chrome.

Practical rule of thumb

  1. Server state → TanStack Query
  2. Wide shared client workflows → Redux Toolkit
  3. Local UI stores → Zustand
  4. Form domain validation → Zod + React Hook Form (not the global store)

In 2026 I still reach for Redux on heavy admin products and Zustand on focused product shells. Using both in one company is fine — using both in one screen without a boundary is not.