I've heard "just use Zustand" a hundred times. Nobody has ever convinced me why I should switch from Redux.
Do I need Zustand?
Videos
Β» npm install zustand
I'm a senior frontend dev. I start a lot of projects. Every project I start, I reach for Redux Toolkit β and it works. My state is predictable, my devtools are excellent, my team knows it, and the patterns scale.
And yet, at least once a month, someone in a code review or a tech discussion says "why are you still using Redux? Just use Zustand."
They never finish the sentence.
I've been building out a React/TypeScript boilerplate I use to start new projects, and I'm genuinely reconsidering the state management choice. But I need someone to make the actual case β not "Zustand is simpler" (simpler than what, exactly?) and not "Redux has too much boilerplate" (Redux Toolkit killed that argument in 2021).
Here's my situation: I already have Redux set up. It took maybe 20 minutes. It works. My selectors are clean, my slices are organized, my devtools show me every action that fires. What is Zustand giving me that justifies ripping that out and relearning patterns?
Specifically, I'd love to hear:
-
A real project where Redux was causing you actual pain and Zustand fixed it
-
What you gave up when you switched (because something always gets sacrificed)
-
Whether Zustand scales to genuinely complex global state, or if it shines best for smaller apps
I'm not looking for a feature comparison β I can read the docs. I want your personal experience.
(I'm collecting these opinions in a GitHub discussion if you want to continue the conversation there: https://github.com/bishopZ/2026-Boilerplate/discussions/23)
My background:
-
I am a Software Engineer but I don't work on web services as part of my job and definitely not on UI.
-
I have a small (40k LOC, few hundred users a week) personal project built with React (SPA, no framework).
Currently I am using the built-in `useState` and `useContext` and it's mostly doing what I want it to do. I have seen a lot of raving about Zustand so I just installed it and played around with it but I'm not 100% sure what I actually should be using it for.
My current understanding is Zustand helps manage global state more efficiently and maybe slightly more conveniently than Context does, but I don't have that much global state in my app anyways and even with my testing on lower end mobile devices I don't have any big problems with performance related to modifying my global state anyways. (And actually when I switched over to Zustand to play around I noticed an odd rendering issue introduced when modifying my global state that was definitely not there before).
Is this something that really shines in larger apps? Or maybe there's more global state in other domains that is not really a factor in my project, so I don't see the benefit?