Is Redux Slowing Down Your React App? Here’s What We Found.

Karandeep SinghKarandeep Singh
4 min read

If you’re building React apps, chances are you’ve either used Redux or Zustand for state management.

Redux is almost synonymous with state management in React. It’s been around forever, is reliable, and has a mature ecosystem. But many developers feel it’s verbose, and sometimes performance can be a concern, especially when your app grows.

Zustand, on the other hand, took a simpler, more modern approach. It offers a minimal API, direct mutations, and an easy learning curve. It’s loved for its simplicity and smaller bundle size.

And for this test, we are also including a new library. That we built ourselves.
Overwatch TS, a lightweight, hooks and minimal API based state management library for React and Next.js with a single focus:

Keep your apps fast while making state management feel effortless.

But are these popular libraries really the best for your app’s performance?

🕵️‍♂️ That’s what we wanted to find out.


⚡️ But How Fast Is “Fast”?

Anyone can claim “fast”, so we decided to put Redux, Zustand, and Overwatch TS to the test under realistic conditions.


How We Tested

We ran benchmark tests that simulate real-world usage patterns:

  • 10,000 concurrent state updates to stress-test update cycles.

  • Cold start initialization to measure startup overhead.

  • Memory usage deltas before and after updates.

  • Multiple iterations (100 runs) to get consistent averages.

These tests ran on the same machine under the same conditions to ensure fairness.


⚡️ What We Found

I was expecting more of a ~5-10% improvement, but the results blew me away…

OverwatchTs Vs Zustand Vs Redux Toolkit

Here’s a quick look:

  • 🚀 Overwatch TS: Average update time: 49.74 ms

  • ⚡️ Zustand: Average update time: 584.74 ms

  • 🔥 Redux Toolkit: Average update time: 913.03 ms

In simple words:

✨ Overwatch TS was ~11.7× faster than Zustand (~91% faster).

Overwatch TS was ~18.3× faster than Redux Toolkit (~95% faster).

And yes, we double-checked these numbers. Several times.


What Our Benchmark Checks?

We didn’t just stop at how “fast” updates happen. Our benchmark evaluates:

Update Cycle Time: How long does it take to update 10,000 states concurrently?
Cold Start Time: How much overhead does initializing the state management add?
Memory Delta: Does state management consume excess memory during updates?
Fastest vs Latest Updates: To track consistency across test runs.


🤝 You Can Check Yourself

Don’t just take my word for it. You can test these libraries yourself,

Live Benchmark Playground:
Test Redux, Zustand, and Overwatch TS live and compare results on your machine.
🌐 Benchmark

View the Benchmark Code:
Want to check the fairness of our tests or run your own benchmarks?
</> Github

We believe in transparency, and this is open for you to explore, fork, and contribute.


Why Is Overwatch TS So Fast?

While Zustand and Redux use well-optimized approaches, Overwatch TS achieves these gains by:

As one of the Overwatch developers, I believe it takes a fresh approach from an architectural perspective. It moves away from the Flux Architecture (like Zustand/Redux) and uses a modern, singleton Publisher-Subscriber pattern. Its simplicity is its core strength. Yes, there are other major factors as well.

✅ Using microtask-based batching to combine multiple state updates in the same tick, reducing re-render cycles.
✅ Employing immutability safely and efficiently, skipping heavy proxies where not needed.
✅ Performing fine-grained subscriptions so only the components that need updates are re-rendered.
✅ Removing boilerplate without sacrificing control.

This means your React components stay fast, even with heavy interactions and complex states.


Check out Overwatch-ts!

Contribute to GitHub:

🔗 GitHub: overwatch-ts
🔗 Documentation: docs.overwatchts.in

Help Build the Sensible

I truly believe we’re past the age of monolithic, store-centric global state. Modern applications are more component-driven, async-heavy, and UI-dynamic than ever. We need tools that reflect this reality.

Join the journey to build a most sensible state layer for React.

Let me know in the comments, or feel free to reach out if you’d like help optimizing your app’s performance.

1
Subscribe to my newsletter

Read articles from Karandeep Singh directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Karandeep Singh
Karandeep Singh

Always on Builder Mode type of software developer, sharing my interesting findings in the hope that they will be helpful for you to level up on your coding journey.