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.