Using this as a place to put some thoughts on Redux after having picked it up over the past few weeks.
I have been spending the least few weeks re-writing an "offline-first" mobx React app into Redux, after it started spinning out of control and becoming unmanageable. Mobx provided a lot less guidance on how to structure a larger app (read: more than a few pages with non-trivial remote interactions)
Like React itself, it took me a few weeks to grok the philosophy and architecture, and internalize the key components so that I wasn't getting lost every few lines of code.
I had evaluated Elm earlier in the year but passed on it, as there were some interop issues, and the component ecosystem wasn't as mature as react.
Redux has had the effect of organizing my code and helping me reason about the structure, as well as providing time travel for free.
Typescript to be very helpful when building with Redux, specifically when I did something wrong, and had to refactor.
I've also been pleasantly surprised at the middleware ecosystem, and how useful and easy to configure it has been.