HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
reduxjs
redux
TypeScript2015–2024
reduxjs / redux

redux

A JS library for predictable global state management

65Distinct people
151Mentions
4Explicit recommenders
61.4KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A JS library for predictable global state management

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

Thanks for doing what you do. I contributed some of the initial documentation [1] for testing middleware back in the day. Wondering if there are any areas in particular you'd…

daveidol used a recommendation phrase. 4 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 2:04:58 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year151 dated mentions

Observed mentions: 2015-06-04 14:48:56 UTC to 2024-12-05 20:12:54 UTC.

01020302015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 34 mentions; 7 submissions, 27 comments20152016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 16 mentions; 2 submissions, 14 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 24 mentions; 1 submissions, 23 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 27 mentions; 4 submissions, 23 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 20 mentions; 2 submissions, 18 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 23 mentions; 0 submissions, 23 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2024

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC34727
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC16214
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC24123
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC27423
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC20218
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC23023
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC404
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC202
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC101

What Hacker News says

16 sources
The idea of having a globally accessible Store with all the variables from the system might sound promising, but listen to me: [It's a trap!] No doubt. This has been my biggest issue with Redux. Any tutorial pretty much says don't ever use component state. But when I couldn't come up with a good reason on why I needed to write an action creator, action, reducer, and state mapper to expand/collapse a menu, over using this.setState(), I came to the conclusion that was pretty much bs. The article also touches on the related issue of stale state. I experienced a similar bug where modals would randomly appear. It was because the user backed out of a page with an open modal, and then revisited it, and the state was never reset, so the modal immediately opened. I understand that I need to clean up state, but in Javascript land, deconstruction/cl
Read the rest
eanup feels very unnatural. I really think Redux is a great idea, but it has suffered from a lack of best practices and good, complex examples. The toy examples work great, but quickly break down once state gets complicated, and components become deeply nested. Dan Abramov dropped a great piece of technology into the Javscript environment, and did that amazing time travel debug demo. The idea of an single immutable state is awesome. But he has failed to progress the project any further. In a github issue titled "Recommended usage of connect()," Dans answers a question regarding best practices with "Maybe we should just say “people have difference preferences here”."[1] Simple things like state clean up, how best to leverage containers, what belongs in state, have all been left unanswered. Also there is a debate if data should be processed in the action creator, in middleware before the reducer, in the reducer, or with state selectors. There are so many layers to put logic, but there has never been a clear answers as to what each layer's responsibility is. [[1]https://github.com/reactjs/redux/issues/419
In 3 simple steps to improve your React Redux code
It gets really hard sometimes. Take the following issue as an example: https://github.com/reactjs/redux/issues/1528 Later in the issue, someone jumps in the discussion and trashed all over everyone. That same person hopped on every blog post, ever medium post, every discussion, gitter, everything. It was bordering on harassment. I don't maintain that project so it's easy for me to ignore, but for the people involved, it must have been pretty rough.
In My condolences, you’re now the maintainer of a popular open source project
Yeah you definitely need Redux or another state management solution. One of the unorthodox practices React encourages (through the Flux architecture) is to have 'global' state that components can access without passing down props all the time. Currently I limit setState usage to things that only the current component cares about, like if a button is disabled. Every event that may affect another component dispatches an update to the Redux store which holds the global state object. Some Redux resources: 1) Getting Started with Redux, videos from its creator: https://egghead.io/series/getting-started-with-redux 2) Simplest Redux example (including ES5): https://github.com/jackielii/simplest-redux-example 3) I added Redux to the example app from the docs: https://medium.com/@firasd/quick-start-tutorial-using-redux-... 4) Offical Redux repo, i
Read the rest
ncluding many examples https://github.com/reactjs/redux
In Thinking in React
Unfortunately, because of browser support "ES5" itself is a moving target. With the release of Babel 6 they've dropping automatically polyfilling for Promises, so you'll need to include an additional polyfill or it will expect the browser supports it. Some setups use Babel to run on Node.js v4+ which supports most of ES6 natively. There's no magical "ES6"-level of browsers which support all features of Promises, though[1]. Some products support IE11, some don't. Some only support the latest versions of Chrome and Firefox. Additionally, more people are using features not even in spec[2], known as "strawman proposals", some which are quite popular in real-life code examples[3] Because of the moving targets on what Babel is transpiling from and to, they went for a "you decide" approach which promotes no particular level of "modern javascript
Read the rest
" or "compiled javascript". It's unfortunate they don't have `npm install --save-dev babel babel-preset-es2015` and "write `{"presets":"es2015"}` to a new .babelrc file" smack-bang at the top of the homepage though. The "handbook" links to a page of links, the "setup" page asks more questions than it answers. With modern Babel, no matter what build system, the above 2 steps are the same, and the 3rd is "add babel to your build system, or `npm install -g babel` and run that" [1] https://kangax.github.io/compat-table/es6/ [2] https://babeljs.algolia.com/docs/usage/experimental/ [3] https://github.com/reactjs/redux/issues/226
In Babel 6 – useless by default

Showing the 15 most recent of 16 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.