Switching, they are not one for one. You need to re-think a lot of what state is. Where it is. If it’s big logic stuff also look at xstate. If it’s just forms, look at react hook form & zod. If it’s just data structures with status. Zod. If it’s query states, tan stack query. Zustand is the best general front end state machine because it’s so simple but powerful enough to handle multiple tasks and “mutations”. Answer from zaskar on reddit.com
🌐
Reddit
reddit.com › r/reactjs › zustand vs redux
r/reactjs on Reddit: Zustand vs Redux
April 20, 2023 -

I've been hearing that Zustand is the way to go and the difference between Zustand and Redux is like that of hooks and classes. For those that have used both, what do you guys recommend for big projects?

Top answer
1 of 4
107
If the comparison is between Zustand and original flavor Redux then yes, pretty stark difference. It’s not truly a fair comparison. Redux Toolkit is and has been the preferred implementation of Redux. Those two are much closer aligned. I think today one of the bigger decisions is with what you will use for a data fetching layer. React-Query is just outstanding and has been gaining a lot of traction. If you already know RQ and love it then I would go with Zustand. That is my preferred combo currently. Redux has RTK Query that is available so it could be preferred for some to go if react query isn’t your thing. React router also now has a data fetching package. So, why did I talk so much about data fetching when the OP question was about Redux or Zustand? The two different kinds of state you need to manage are app state and server state. RTK or Zustand are great tools for managing client state while RTK Query and React Query are great for managing server state. Personally I like to keep separate.
2 of 4
48
The tide is turning thank GOD. The cognitive overload for Redux alone makes it not a good choice (in my opinion it NEVER was). RTK was to combat this along with other issues, boilerplate, etc.. Embrace Zustand, or Recoil. FB internal doesn't even use Redux. Downvote, whatever, I've worked with React as a lead since 2014 and have been able to actively avoid it. My teams have praised us using Reflux (2014-2015), then Mobx, and now Zustand... all of them came from Redux code bases (the later ones anyway post 2016). I've yet to meet someone who has said "Can we just use Redux instead please?"
🌐
Reddit
reddit.com › r/reactjs › redux vs zustand
r/reactjs on Reddit: Redux Vs Zustand
February 20, 2025 -

I've never been a fan of Redux and I've been using Zustand in a project for a while now, however, I've been working on this alone, and soon there will be others joining

I was wondering if we should switch to Redux?
It is a BIG project, we have a big part that has a lot of undoing/redoing but I'm not sure whether Zustand will be good enough for a large scaled project.

🌐
Reddit
reddit.com › r/reactnative › what’s the difference between use zustand or redux?
r/reactnative on Reddit: What’s the difference between use Zustand or Redux?
May 22, 2024 - Zustand is simpler and easy to use, but not nearly as powerful. It doesn't integrate with the react-query cache, where RTK + RTK-Query use the same store (can be useful in async effects to query the store and refer to current remote data).
🌐
Reddit
reddit.com › r/react › when to use store (zustand) vs context vs redux ?
r/react on Reddit: When to use Store (Zustand) vs Context vs Redux ?
October 18, 2024 -

Hello,

I’ve doing react for a few months now (coming from angular) and I’m really enjoying doing it.

So I am kind of new to many concepts in react and I find myself often going back a refactoring things. For example I had to go back and use Zustand for things like modal , feature component because I was throwing context right and left 😂.

Anyway, I am still confused about when I should use store vs context since they both can do similar things in my opinion (as far as I have learned).

How do you decide ?

One last thing , how do you decide whether to use store/context or just pass props ?

I read people writing things about global state etc … and it’s not clear for me, so it’s not helping making the decision .

I am open to your suggestions and advice and thanks in advance.

Cheers

Top answer
1 of 8
14
I’ve never used Zustand, but I’ve heard a lot about it. I’ve been using the Context API and useReducer for the past 3 years. However, for large-scale apps, I think RTK (Redux Toolkit) is Best and React Query are better options for data fetching. The idea of having one global centralized store with RTK is great since any component can access the data whenever needed. So, I personally prefer RTK. That said, I’m really curious to know why Zustand is gaining so much popularity these days. Can anyone explain?
2 of 8
9
From my experience: 1. Never use redux It's almost never needed, except for maybe some complex cases where your app needs time-traveling, maybe some kind of picture editing tool. But even then, you could use context/zustand with reducers. Reasons: Redux requires a lot of boilerplate code, even with tools like redux-toolkit Redux store quickly gets bloated during the lifetime of the app development - the state grows uncontrollably and doesn't have any restrictions for interdependencies - some parts of the state will depend on others freely which may lead to a spaghetti code and unexpected bugs Modules using Redux are never truly encapsulated: if you create a submodule with some redux state that you later compose with other states on the app's root level, the submodule must already know the point at which the state is attached to create selectors. It may sound like a minor issue, but theoretically, it may lead to conflicts when two different submodules, `authorization` and `authentication`, choose to use the same key under the app's root state: `appState.auth`. However, the probability of a conflict is tiny, and even then, it is somewhat easy to fix. Nevertheless, just the fact of this cyclical dependency discourages me from using this library. Still, many companies use it even today, and the idea of pure functional reducers for state management is excellent, so if you want it, you can try using Redux. 2. Passing props Usually, I just start with this—create some dumb component that depends solely on its props. Even if I need to pass the props 2-3 layers to this component, it's okay for me. It's the simplest solution, the easiest to test, and the easiest to migrate to one of the other possible solutions. I try to have a component that accepts only the props that make sense in its context. So, if a component only displays a username, I don't take the entire user object as a prop. 3. Context It's a great tool, and I've built a pretty significant app using solely context and state hooks. The context is said to be used when you need to do some prop-drilling deep into the react tree, which is a good rule-of-thumb, but I prefer to see it as a means of achieving dependency injection. What I mean by that is when I need some functionality that may be used in multiple places throughout my app and need access to react tree or lifecycle, like notifications or authentication, I create an encapsulated module with a context provider that must be used by consumers of the module at the root level and a hook to consume that context. I never export the context directly as I don't want to leak unnecessary implementation details to my consumers. Advantages of this solution: Every module is actually encapsulated (unlike redux); consumers just need to use a `ModuleProvider` component and a `useModule` hook Every module has its own state and can interact with other modules' states only by hooks/functions defined explicitly by the module creator Each module can still use reducer-style state management by using `useReducer` Disadvantages: The root component may significantly grow with a lot of context providers Which may also lead to performance issues, cause the entire app will be rerendered when a top-level context changes 4. Dedicated libraries For common use cases, like fetching and mutating data in an async store, it's best to use existing libraries like `useQuery`. It's much easier to use than, for example, redux and comes with many useful features.
🌐
Reddit
reddit.com › r/reactjs › i've heard "just use zustand" a hundred times. nobody has ever convinced me why i should switch from redux.
r/reactjs on Reddit: I've heard "just use Zustand" a hundred times. Nobody has ever convinced me why I should switch from Redux.
February 19, 2026 -

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)

Find elsewhere
🌐
Reddit
reddit.com › r/nextjs › zustand vs react-redux which one is better for state management in next.js 14 for full fledged ecommerce app
r/nextjs on Reddit: Zustand vs React-Redux which one is better for state management in Next.js 14 for full fledged ecommerce app
November 5, 2024 -

I am building an ecommerce website, so I need a state management tool (for cart , user info and other infos), don't know if I should choose Zustand or React-Redux. One hand Zustand is completely new to me but on other hand I am finding React-redux pretty difficult(creating slices and store is easy.. but using redux in any component asks for parent Client component and having whole app as Client is not feasible) to manage

Any guidance is appreciated !

🌐
Reddit
reddit.com › r/reactjs › unpopular opinion: redux toolkit and zustand aren't that different once you start structuring your state
r/reactjs on Reddit: Unpopular opinion: Redux Toolkit and Zustand aren't that different once you start structuring your state
April 29, 2025 -

So, Zustand often gets praised for being simpler and having "less boilerplate" than Redux. And honestly, it does feel / seem easier when you're just putting the whole state into a single `create()` call. But in some bigger apps, you end up slicing your store anyway, and it's what's promoted on Zustand's page as well: https://zustand.docs.pmnd.rs/guides/slices-pattern

Well, at this point, Redux Toolkit and Zustand start to look surprisingly similar.

Here's what I mean:

// counterSlice.ts
export interface CounterSlice {
  count: number;
  increment: () => void;
  decrement: () => void;
  reset: () => void;
}

export const createCounterSlice = (set: any): CounterSlice => ({
  count: 0,
  increment: () => set((state: any) => ({ count: state.count + 1 })),
  decrement: () => set((state: any) => ({ count: state.count - 1 })),
  reset: () => set({ count: 0 }),
});

// store.ts
import { create } from 'zustand';
import { createCounterSlice, CounterSlice } from './counterSlice';

type StoreState = CounterSlice;

export const useStore = create<StoreState>((set, get) => ({
  ...createCounterSlice(set),
}));

And Redux Toolkit version:

// counterSlice.ts
import { createSlice } from '@reduxjs/toolkit';

interface CounterState {
  count: number;
}

const initialState: CounterState = { count: 0 };

export const counterSlice = createSlice({
  name: 'counter',
  initialState,
  reducers: {
    increment: (state) => { state.count += 1 },
    decrement: (state) => { state.count -= 1 },
    reset: (state) => { state.count = 0 },
  },
});

export const { increment, decrement, reset } = counterSlice.actions;
export default counterSlice.reducer;

// store.ts
import { configureStore } from '@reduxjs/toolkit';
import counterReducer from './counterSlice';

export const store = configureStore({
  reducer: {
    counter: counterReducer,
  },
});

export type RootState = ReturnType<typeof store.getState>;
export type AppDispatch = typeof store.dispatch;

Based on my experiences, Zustand is great for medium-complexity apps, but if you're slicing and scaling your state, the "boilerplate" gap with Redux Toolkit shrinks a lot. Ultimately, Redux ends up offering more structure and tooling in return, with better TS support!

But I assume that a lot of people do not use slices in Zustand, create multiple stores and then, yeah, only then is Zustand easier, less complex etc.

🌐
Reddit
reddit.com › r/react › zustand vs redux toolkit
r/react on Reddit: Zustand vs Redux toolkit
July 17, 2023 -

#Zustand vs #Redux #toolkit

I spent 2 weeks sifting through documentation, testing, and playing with #Zustand and the #Redux #toolkit.

The result of this fun is a long, though terse article, in which I compare:

  1. The size of the technologies.

  2. The impact of the code written on the size of the application.

  3. Implementation of #Code #Splitting.

  4. The amount of boilerplate.

  5. Complexity of solutions.

  6. Work with the state.

  7. Paradigms.

  8. What the building blocks look like.

  9. What the middleware looks like.

  10. Developer tools.

And many, many more...

At the very end, I share my own thoughts - this is just an opinion and please do not rely on it.

Little spoiler - #Zustand #1kB, #Redux #toolkit with necessary ecosystem #10kB+.

https://greenonsoftware.com/articles/libraries/comparing-redux-with-zustand-for-state-management-in-react/

🌐
Reddit
reddit.com › r/reactnative › zustand vs redux toolkit for react native: seeking community insights
r/reactnative on Reddit: Zustand vs Redux Toolkit for React Native: Seeking Community Insights
November 4, 2023 -

I'm at a crossroads in my development journey and could use some collective wisdom. I've been considering whether to integrate Zustand or Redux Toolkit into my React Native projects. While I'm aware there are multiple factors at play, the demand in the job market seems to be a significant one, and it's making me hesitant to fully commit to Zustand.

From your experience, which state management library do you find more prevalent in the industry, especially when it comes to React Native? Does Redux Toolkit still hold the throne, or is Zustand gaining ground? I'm looking for insights that could help me make a more informed decision.

What do you think? I'd love to hear your thoughts and experiences!

🌐
Reddit
reddit.com › r/react › zustand vs redux
r/react on Reddit: Zustand vs redux
March 28, 2023 -

Hi

We're throwing away our MobX based mess and hiding all state management behind custom hooks & having all the components agnostic about the underlying state management.

None of us have really used Zustand previously but it does look really clean & I've read lots of positive things about it. I'm still kinda worried about a) it being another js framework of the week & much smaller ecosystem when it comes to tooling etc.

Any opinions / experiences / etc?

🌐
Reddit
reddit.com › r/reactjs › do i really need redux or zustand if i have context api?
r/reactjs on Reddit: Do I really need Redux or Zustand if I have Context API?
November 14, 2024 -

I've been wondering if external libraries like Redux or Zustand are necessary for managing global state when Context API already exists within React. I've used Redux Toolkit (RTK) before, but I don’t quite see the benefit when Context API, especially combined with useReducer, seems capable of handling similar tasks.

People often say it depends on the complexity of the app, but I've yet to encounter a case where I had to use RTK. From my perspective, if you structure your app well, Context API should be enough.

To be transparent, I’m not deeply experienced with Redux or Zustand (I've only used them a few times), so maybe I'm missing something. For those who've used both extensively, what benefits do Redux or Zustand offer over Context API in real-world scenarios?