Skip to main content

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.

Alternative

Zustand

Resources