I frequently disagree with Eric Elliott's opinions (like claiming that TypeScript is useless, or that everyone should learn "concatenative inheritance"). That said, this article basically matches how I would describe the situation: hooks like `useContext` and `useReducer` overlap with some of the ways you'd use Redux, but overall are a different tool for different use cases. Both have their place, and there's still lots of reasons to use Redux.<p>I've tackled this topic in a few places:<p>- Reactathon 2019 Keynote: The State of Redux (<a href="https://blog.isquaredsoftware.com/2019/03/presentation-state-of-redux/" rel="nofollow">https://blog.isquaredsoftware.com/2019/03/presentation-state...</a>)<p>- Redux - Not Dead Yet! (<a href="https://blog.isquaredsoftware.com/2018/03/redux-not-dead-yet/" rel="nofollow">https://blog.isquaredsoftware.com/2018/03/redux-not-dead-yet...</a>)<p>- Thoughts on React Hooks, Redux, and Separation of Concerns (<a href="https://blog.isquaredsoftware.com/2019/07/blogged-answers-thoughts-on-hooks/" rel="nofollow">https://blog.isquaredsoftware.com/2019/07/blogged-answers-th...</a>)