MobX is an open-source JavaScript and TypeScript library for state management, the part of an application that holds its data, such as the current user or a list of items, and keeps the user interface in step with it. MobX describes itself as a signal-based library that applies transparent functional reactive programming: the code changes data with normal JavaScript assignments, and the library propagates the changes.
A developer marks objects as observable state, changes them inside actions, and defines computed values and reactions that depend on them. At runtime MobX tracks every read and every change and builds a dependency tree between state and output. A React component wrapped in observer (from the mobx-react-lite package) therefore re-renders only when a value it actually used has changed, without manual memoization or selectors. The state lives outside any UI framework, so it can be tested on its own.
MobX is free software under the MIT license; it is funded by sponsors and individual backers.