Why Infinite Red uses MobX-State-Tree instead of Redux
Article Summary
Jamon Holmgren from Infinite Red explains why his team ditched Redux after years of use. The reasons might surprise you—and they're backed by real production experience.
Infinite Red, a leading React Native consultancy, made the bold switch from Redux to MobX-State-Tree (MST) in 2017. After building dozens of apps with both systems, they've identified six critical factors that influenced their decision and continue to shape how they architect state management today.
Key Takeaways
- Redux's steep learning curve requires mastering dispatchers, reducers, thunks, sagas, and middleware
- MST reduces boilerplate by 60-70% with mutable actions instead of immutable reducers
- Runtime type-checking catches API boundary errors that TypeScript alone misses
- MobX-React's observer pattern enables surgical re-renders without manual optimization
- Redux has 70-80% market share but MST delivers better performance out of the box
MobX-State-Tree offers simpler syntax, better performance, and runtime type safety compared to Redux, though Redux maintains a larger ecosystem and community.
About This Article
At Infinite Red, Redux required developers to edit multiple files whenever they changed state. They had to update actions, constants, and reducers separately. This made maintenance harder and introduced more opportunities for bugs across their React and React Native projects.
MobX-State-Tree puts all state logic in one place. Instead of separate action creators, constants files, and reducer boilerplate, developers write direct functions in unified store definitions. Redux demands all those pieces. MST doesn't.
Infinite Red's teams kept consistent code organization across 3+ years of projects from 2017 to 2020 using MST. Redux implementations varied significantly between teams because the framework's flexibility meant everyone organized things differently.