Redux logo

Redux

Predictable state container for JavaScript apps
6.8K
5K
+ 1
609

What is Redux?

It helps you write applications that behave consistently, run in different environments (client, server, and native), and are easy to test. t provides a great experience, such as live code editing combined with a time traveling debugger.
Redux is a tool in the State Management Library category of a tech stack.
Redux is an open source tool with 51.7K GitHub stars and 13.5K GitHub forks. Here鈥檚 a link to Redux's open source repository on GitHub

Who uses Redux?

Companies
1422 companies reportedly use Redux in their tech stacks, including Instagram, Intuit, and Swat.io.

Developers
5106 developers on StackShare have stated that they use Redux.

Redux Integrations

JavaScript, React, redux-thunk, Meatier, and redux-saga are some of the popular tools that integrate with Redux. Here's a list of all 19 tools that integrate with Redux.

Why developers like Redux?

Here鈥檚 a list of reasons why companies and developers use Redux
Redux Reviews

Here are some stack decisions, common use cases and reviews by companies and developers who chose Redux in their tech stack.

Johnny Bell
Johnny Bell
Senior Software Engineer at StackShare | 41 upvotes 220.6K views
Firebase
Firebase
React
React
Redux
Redux
styled-components
styled-components
Netlify
Netlify
Gatsby
Gatsby
GitHub
GitHub
#ReactRally
#Frontend
#Google

I was building a personal project that I needed to store items in a real time database. I am more comfortable with my Frontend skills than my backend so I didn't want to spend time building out anything in Ruby or Go.

I stumbled on Firebase by #Google, and it was really all I needed. It had realtime data, an area for storing file uploads and best of all for the amount of data I needed it was free!

I built out my application using tools I was familiar with, React for the framework, Redux.js to manage my state across components, and styled-components for the styling.

Now as this was a project I was just working on in my free time for fun I didn't really want to pay for hosting. I did some research and I found Netlify. I had actually seen them at #ReactRally the year before and deployed a Gatsby site to Netlify already.

Netlify was very easy to setup and link to my GitHub account you select a repo and pretty much with very little configuration you have a live site that will deploy every time you push to master.

With the selection of these tools I was able to build out my application, connect it to a realtime database, and deploy to a live environment all with $0 spent.

If you're looking to build out a small app I suggest giving these tools a go as you can get your idea out into the real world for absolutely no cost.

See more
Docker
Docker
Docker Compose
Docker Compose
Jenkins
Jenkins
Kubernetes
Kubernetes
Amazon EC2
Amazon EC2
Heroku
Heroku
FeathersJS
FeathersJS
Node.js
Node.js
ExpressJS
ExpressJS
PostgreSQL
PostgreSQL
React
React
Redux
Redux
Semantic UI React
Semantic UI React
AVA
AVA
ESLint
ESLint
nginx
nginx
GitHub
GitHub
#Containerized
#Containers
#Backend
#Stack
#Frontend

Recently I have been working on an open source stack to help people consolidate their personal health data in a single database so that AI and analytics apps can be run against it to find personalized treatments. We chose to go with a #containerized approach leveraging Docker #containers with a local development environment setup with Docker Compose and nginx for container routing. For the production environment we chose to pull code from GitHub and build/push images using Jenkins and using Kubernetes to deploy to Amazon EC2.

We also implemented a dashboard app to handle user authentication/authorization, as well as a custom SSO server that runs on Heroku which allows experts to easily visit more than one instance without having to login repeatedly. The #Backend was implemented using my favorite #Stack which consists of FeathersJS on top of Node.js and ExpressJS with PostgreSQL as the main database. The #Frontend was implemented using React, Redux.js, Semantic UI React and the FeathersJS client. Though testing was light on this project, we chose to use AVA as well as ESLint to keep the codebase clean and consistent.

See more
Russel Werner
Russel Werner
Lead Engineer at StackShare | 15 upvotes 206.7K views
atStackShareStackShare
GraphQL
GraphQL
React
React
Apollo
Apollo
Redux
Redux
#FrontEndFrameworks

Earlier this year we decided to go "all-in" on GraphQL to provide our front-end API. We needed a stable client library to power our React app. We decided to use Apollo Client for a few reasons:

1) Stability 2) Maturity 3) Heaps of features 4) Great documentation (with use cases) 5) Support for server-side rendering 6) Allowed us to stop using Redux and Mobx

Overall we've had great success with this library, along with a few minor hiccups and work arounds, but no show stoppers. If you are coming from Redux.js land, it takes a bit of time to settle into a new way of thinking about how your data is fetched and flows through your React app. This part has been the biggest learning curve of anything to do with GraphQL.

One of the downsides to Apollo Client, once you build a larger application, (past the size of most of the documented use cases and sample apps) the state management tends to get distributed through various places; and not just components. Apollo Client has a state management feature that relies on a normalised local cache. Mastering the knowledge of how this works is key to getting the most out of the library and to architecting your component hierarchy properly.

#FrontEndFrameworks

See more
Theofanis Despoudis
Theofanis Despoudis
Senior Software Engineer at Teckro | 15 upvotes 11.2K views
React
React
Redux
Redux

React Redux with the latest version of React-Redux 7.1.0 offers Hooks support so you don't have to create custom contexts or whatever. You just use a combination of useDispatch, useSelector just as usual. You keep all the benefits of Redux with the abstractions and optimisations of the react-redux connector.

See more
Marcos Iglesias
Marcos Iglesias
Sr. Software Engineer at Eventbrite | 13 upvotes 63.5K views
atEventbrite-0Eventbrite-0
Backbone.js
Backbone.js
Marionette
Marionette
Flux
Flux
Redux
Redux
React
React

We are in the middle of a change of the stack on the front end. So we used Backbone.js with Marionette. Then we also created our own implementation of a Flux kind of flow. We call it eb-flux. We have worked with Marionette for a long time. Then at some point we start evolving and end up having a kind of Redux.js-style architecture, but with Marionette.

But then maybe one and a half years ago, we started moving into React and that's why we created the Eventbrite design system. It's a really nice project that probably could be open sourced. It's a library of components for our React components.

With the help of that library, we are building our new stack with React and sometimes Redux when it's necessary.

See more
Gianluca Bargelli
Gianluca Bargelli
React
React
AngularJS
AngularJS
Redux
Redux
MobX
MobX

We started rebuilding our dashboard components using React from AngularJS over 3 years ago and, in order to have predictable client-side state management we introduced Redux.js inside our stack because of the popularity it gained inside the JavaScript community; that said, the number of lines of codes needed to implement even the simplest form was unnecessarily high, from a simple form to a more complex component like our team management page.

By switching our state management to MobX we removed approximately 40% of our boilerplate code and simplified our front-end development flow, which in the ends allowed us to focus more into product features rather than architectural choices.

See more

Redux's Features

  • Predictable state
  • Easy testing
  • Works with other view layers besides React

Redux Alternatives & Comparisons

What are some alternatives to Redux?
Cycle.js
A functional and reactive JavaScript framework for predictable code
MobX
MobX is a battle tested library that makes state management simple and scalable by transparently applying functional reactive programming (TFRP). React and MobX together are a powerful combination. React renders the application state by providing mechanisms to translate it into a tree of renderable components. MobX provides the mechanism to store and update the application state that React then uses.
Flux
Flux is the application architecture that Facebook uses for building client-side web applications. It complements React's composable view components by utilizing a unidirectional data flow. It's more of a pattern rather than a formal framework, and you can start using Flux immediately without a lot of new code.
React
Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project.
RxJS
RxJS is a library for reactive programming using Observables, to make it easier to compose asynchronous or callback-based code. This project is a rewrite of Reactive-Extensions/RxJS with better performance, better modularity, better debuggable call stacks, while staying mostly backwards compatible, with some breaking changes that reduce the API surface.
See all alternatives

Redux's Followers
4971 developers follow Redux to keep up with related blogs and decisions.
ken okamura
Diego Oliveira
Geun ho Jang
ReevMich
Maksim Lapsinov
Sean Bailey
Micha艂 Pierzchlewicz
Amir Abdullin
BC CHOI
Kevin Campion