MobX
Discouraged
Not our default choice. We recommend Zustand for most projects.
What is it
MobX is a reactive state management library using observable/signal-based patterns. It automatically tracks state dependencies and re-renders only affected components.
Why it's not our default
- Implicit reactivity can be confusing — MobX's automatic tracking makes data flow harder to trace and debug vs Zustand's explicit subscriptions.
- Requires decorators or
makeAutoObservable— class-based patterns or special wrappers feel foreign in a hooks-first React ecosystem. - Smaller community than Redux or Zustand — fewer tutorials, Stack Overflow answers, and third-party integrations.
- Zustand is simpler for React — hook-based API is more idiomatic for modern React, no wrapping components in
observer().
When it makes sense
- Complex domain models with deep object graphs — MobX excels at tracking changes in deeply nested, interconnected structures (e.g., form builders, spreadsheet-like UIs).
- Teams migrating from desktop/MVVM backgrounds — MobX's observable pattern is familiar to developers from C#/WPF or Knockout.
- Existing MobX projects — maintain consistency rather than rewriting.