Skip to main content

Redux

Discouraged

Not our default choice. We recommend Zustand for most projects.

What is it

Redux is a predictable state container for JavaScript apps, implementing a centralized store with unidirectional data flow via actions and reducers. Redux Toolkit (RTK) is the modern, official way to write Redux.

Why it's not our default

  • Excessive boilerplate — even with RTK, requires slices, actions, reducers, selectors, store config, and Provider setup. Zustand achieves the same with a single create() call.
  • Steep learning curve — middleware, thunks, normalized state, memoized selectors add cognitive overhead.
  • Overkill for most apps — the majority of frontend state needs are simple; Redux is designed for highly complex state machines.
  • Zustand is simpler and lighter — ~1 KB, hook-based, no Provider wrapping, handles 95% of cases.
  • RTK Query overlaps with TanStack Query — for server state, TanStack Query is more focused.

When it makes sense

  • Large existing Redux codebases — migrating may not be worth the cost; upgrading to RTK is a better investment.
  • Complex cross-cutting state logic — apps with intricate state machines, undo/redo, or time-travel debugging benefit from Redux DevTools.
  • Team expertise — if the team is deeply experienced with Redux and the project is complex enough to warrant it.

Alternative

Zustand

Resources