For a reactive state management library for frontend, the first results are pmndrs/valtio (Valtio is a proxy-based reactive state management library that wraps state objects to track mutations and automatically propagate updates, supporting computed properties and fine-grained re-rendering, making it a direct and comprehensive match for your search), mobxjs/mobx and nanostores/nanostores (Nanostores is a reactive state management library built around atomic observable stores for fine-grained reactivity, supporting computed stores, subscriptions, and cross-framework adapters in TypeScript—directly matching the seek for a minimal, observable-based state library). legendapp/legend-state and knockout/knockout round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
Explore the best reactive state management libraries for your project. Compare top GitHub repositories by stars and activity to find the best fit.
Valtio is a proxy-based state management library and reactive state engine that provides a mutable state store. It allows application state to be updated through direct object mutations rather than immutable patterns, using JavaScript proxies to track changes and trigger updates. For React applications, it includes a synchronization hook that ensures components re-render only when the specific properties they access are modified. The system supports reactive data derivation through computed properties that automatically update when their underlying dependencies change. It maintains reactivity
Valtio is a proxy-based reactive state management library that wraps state objects to track mutations and automatically propagate updates, supporting computed properties and fine-grained re-rendering, making it a direct and comprehensive match for your search.
MobX is a reactive state management library and fine-grained reactivity engine. It provides an observable data store that automatically triggers updates in the user interface when data structures change, functioning as a transparent functional reactive store to maintain a consistent source of truth. The system utilizes a dependency-graph mapping and proxy-based object observation to track data dependencies. This ensures that only the specific components dependent on changed data are updated, which reduces unnecessary re-renders and optimizes frontend performance. The library supports decoupl
MobX is a reactive state management library that uses proxy-based observables and a dependency graph to automatically propagate changes, and it covers all requested features including computed properties, subscriptions, minimal API, React integration, TypeScript support, and fine-grained reactivity — exactly what this search is after.
Nano Stores is a framework-agnostic state management library that uses a system of small, independent atomic stores to synchronize data across different JavaScript UI frameworks. It provides a reactive state container designed to minimize unnecessary component re-renders by decoupling application state into independent stores. The library features specialized synchronizers for real-time distributed state using WebSockets with conflict-free replicated data types, as well as a browser storage persistor for maintaining state across multiple open tabs. It utilizes adapter-based integration to map
Nanostores is a reactive state management library built around atomic observable stores for fine-grained reactivity, supporting computed stores, subscriptions, and cross-framework adapters in TypeScript—directly matching the seek for a minimal, observable-based state library.
Legend-State is a reactive state management library for JavaScript applications that provides a centralized container for application data. It utilizes a fine-grained reactivity engine to track state access automatically, allowing developers to update and retrieve data without the need for boilerplate patterns like reducers, actions, or dispatchers. The library distinguishes itself through its hierarchical, path-based state addressing and proxy-based dependency tracking. By isolating state dependencies, it ensures that user interface updates are triggered only for the specific components that
Legend-State is a reactive state management library with proxy-based fine-grained reactivity and automatic dependency tracking, directly matching the need for automatic change propagation without reducers or dispatchers, and it is written in TypeScript.
Knockout is a client-side UI library and JavaScript framework used to create responsive web interfaces. It functions as a declarative data binding library and an observable data model system that decouples business logic from the document object model. The project implements the Model-View-ViewModel pattern to separate application logic from the user interface. It synchronizes data models with visual views by linking internal JavaScript properties to HTML elements, allowing the interface to update automatically when underlying data changes. The framework provides capabilities for dynamic fro
Knockout is a classic reactive state management library that provides observable-based reactivity, computed properties, automatic dependency tracking, and data binding, directly meeting the core intent.
Vue is a progressive JavaScript framework designed for building modular, reactive user interfaces. It utilizes a component-based architecture that allows developers to encapsulate logic, templates, and styles into reusable units. At its core, the framework employs a virtual DOM renderer and a proxy-based reactivity system to synchronize application state with the document object model efficiently. What distinguishes this framework is its focus on developer experience and flexibility. It supports a single-file component format that colocalizes related concerns, alongside a powerful composition
Vue's core provides a standalone proxy-based reactivity system with computed properties, watchers, fine-grained updates, and TypeScript support, making it the definitive reactive state management library you are looking for.
Pinia is a state management library for Vue applications that provides a centralized, type-safe architecture for organizing reactive data. It utilizes a modular store pattern, allowing developers to define independent, reusable state containers that manage shared application data, computed getters, and executable actions. The library distinguishes itself through a flexible definition model that supports both functional setup patterns and traditional object-based structures. It features a plugin-based extension architecture that enables developers to hook into the store lifecycle for custom fu
Pinia is the official Vue state management library built on proxy-based reactivity, offering computed getters, watchers, and a minimal API—exactly the reactive state library with all requested features, though it is tied to the Vue framework.
Jotai is a state management library for React applications that utilizes an atomic model to handle data. It organizes application state into small, independent units called atoms, which automatically track dependencies and trigger granular updates to components. By building state through these composable primitives, the library ensures that only the necessary parts of an application re-render when data changes. The library distinguishes itself through its flexible approach to state composition and asynchronous data handling. It integrates promises directly into the state model, allowing devel
Jotai is a reactive state management library for React that uses an atomic model with automatically tracked dependencies and fine-grained updates, directly matching the need for observable-based reactivity, computed state, and a minimal API with TypeScript support.
This project is a state management framework for Angular applications that provides a predictable state container. It implements a Redux-style architecture using a centralized store, managing global and local application data through an observable-based data flow of actions and reducers. The framework includes a specialized entity management tool for organizing and synchronizing server-side data collections within client-side stores. It also provides a reactive store system that integrates state updates with Angular signals for change detection and includes debugging mechanisms for time-trave
NgRx is a reactive state management library for Angular using observables and a centralized store with selectors for derived state, fitting the need for observable-based reactivity and framework integration, though its Redux-style pattern differs from a minimal proxy-based approach.
React Hook Form is a state management library designed to handle form registration, validation, and submission lifecycle events. By decoupling form control logic from the standard component lifecycle, it enables the creation of performant forms that minimize unnecessary re-renders. The library integrates with external schema validation tools to enforce data integrity and provides a declarative framework for managing complex form structures. The project distinguishes itself through a subscription-based architecture that tracks property access to ensure components only update when the specific
React Hook Form is a reactive state management library that uses a subscription-based architecture to track property access and minimize re-renders, but it is specialized for form state rather than general-purpose state objects, which may limit its applicability for broader reactivity needs.
This project is a declarative framework for building reactive user interfaces by embedding logic directly into HTML markup. It functions as a lightweight state container that tracks data changes and automatically synchronizes the document object model with the underlying application state. By utilizing proxy-based observation, it ensures that interface updates occur precisely when reactive properties are modified. The framework distinguishes itself by allowing developers to define interactive behavior through custom attributes rather than external scripts. This approach enables the compositio
Alpine.js is a lightweight, proxy-based reactive state container that tracks data changes and synchronizes the DOM, fitting your need for a library that makes state objects reactive with computed properties and watchers, though it is embedded in a full UI framework rather than a standalone state management library.
Effector is a reactive state management library designed for building complex, event-driven applications. It functions as a data flow engine that models application logic as a directed acyclic graph, ensuring that state updates propagate automatically through interconnected nodes. By utilizing atomic state updates and declarative unit composition, the library maintains data consistency and provides a predictable execution model for managing application state. The project distinguishes itself through its framework-agnostic architecture, which decouples business logic from user interface implem
Effector is a mature reactive state management library for TypeScript and JavaScript that provides observable stores, computed derived state, subscription mechanisms, minimal API surface, framework integrations, and fine-grained reactivity, fully matching the visitor's search for a library that makes state objects reactive with automatic change propagation.
Signals is a reactive state management library and fine-grained reactivity engine. It functions as a dependency-tracking state manager that maps relationships between values to ensure derived data and user interface elements remain synchronized. The library distinguishes itself through direct-to-node DOM binding, which allows state to update specific text nodes in the browser without triggering a full component render cycle. It employs a runtime dependency graph and atomic batching to group multiple state modifications into single notification cycles, reducing redundant executions. The syste
Signals is a performant state management library that provides observable-based signals with automatic dependency tracking and fine-grained updates, perfectly matching the request for a reactive state management library with proxy/observable reactivity.
MobX State Tree is a structured, tree-based state management library for JavaScript applications that combines typed model definitions with reactive snapshots and patch-based change tracking. It provides a reactive state container with runtime and compile-time type safety, where application state is defined as a tree of typed models with collocated actions, computed views, and lifecycle hooks for predictable state mutations. The library is built around an action-centric mutation model that encapsulates all state changes within named functions that directly modify the tree, supported by genera
MobX State Tree is a reactive state management library that provides observable, typed models with computed views and action-centric mutations, built on MobX’s proxy-based reactivity—directly matching the demand for a structured, tree-based reactive state library with TypeScript support.
re-frame is a functional framework for building single-page applications in ClojureScript. It provides a centralized, immutable database that serves as the single source of truth for the entire application state, enforcing a strict unidirectional data flow where events trigger state transitions and subsequent view updates. The framework distinguishes itself through a reactive signal graph and an interceptor-based middleware pipeline. By treating application logic as a sequence of data-driven events and declarative side effects, it decouples business logic from the view layer. This architectur
re-frame is a ClojureScript reactive state management framework built on a centralized immutable database and a reactive signal graph with subscriptions for derived state, which fits the category of a reactive state management library, though it is ClojureScript-specific and uses a signal-based approach rather than proxy-based reactivity.
Zustand is a state management library that provides a centralized store for managing shared application data. It functions as a reactive container that connects application state to components, allowing them to subscribe to specific slices of data and trigger updates automatically. By utilizing selector-based data access and immutable state updates, the library ensures that components only re-render when their observed data changes, maintaining a predictable and efficient data flow. The library distinguishes itself through a pluggable, middleware-based architecture that allows for the extensi
Zustand is a state management library with a minimal, selector-based reactive store that automatically propagates changes to components — it fits the reactive state management category but uses immutable updates rather than proxy/observable wrappers as the core mechanism.
Observer-util is a reactive state management library that leverages ES6 proxies to automate dependency tracking and synchronization between data and application logic. By wrapping plain data structures in transparent proxies, the library monitors property access and mutations to trigger associated functions automatically whenever the underlying state changes. The library distinguishes itself through its granular control over the reactive lifecycle and execution flow. It provides mechanisms to decouple data change detection from reaction execution, allowing developers to implement custom sched
nx-js/observer-util is a library that makes objects reactive via ES6 Proxies, offering transparent change propagation and data binding, which fits your search for a minimal proxy-based reactive state management library, though it lacks explicit computed/derived state and TypeScript support.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| pmndrs/valtio | 10.2K | TypeScript | MIT | |
| mobxjs/mobx | 28.2K | TypeScript | MIT | |
| nanostores/nanostores | 7.1K | TypeScript | mit | |
| legendapp/legend-state | 4.1K | TypeScript | MIT | |
| knockout/knockout | 10.5K | JavaScript | NOASSERTION | |
| vuejs/core | 53.9K | TypeScript | MIT | |
| vuejs/pinia | 14.5K | TypeScript | mit | |
| pmndrs/jotai | 21.2K | TypeScript | MIT | |
| ngrx/platform | 8.3K | TypeScript | NOASSERTION | |
| react-hook-form/react-hook-form | 44.8K | TypeScript | MIT |