awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
pmndrs avatar

pmndrs/jotai

0
View on GitHub↗
21,208 stars·721 forks·TypeScript·MIT·10 viewsjotai.org↗

Jotai

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 developers to manage remote data fetching and loading states as if they were synchronous. Furthermore, it supports provider-based scoping to isolate state containers to specific component subtrees, preventing data leakage and enabling multiple independent instances of the same state within a single application.

Beyond its core atomic structure, the project provides a comprehensive suite of tools for managing complex data flows. This includes utilities for derived state, URL synchronization, and persistent storage, as well as mechanisms for integrating external state patterns like reducers or state machines. The system also offers robust debugging capabilities, including time-travel inspection, state history tracking, and isolated testing environments to validate logic independently of the user interface.

The library is written in TypeScript, providing automatic type inference for state definitions to ensure consistency across the application. It is designed to be framework-agnostic, exposing a central store interface that allows for imperative state access and manipulation outside of the standard component render cycle.

Features

  • Application State Management - Manages shared application data through independent, composable atomic units that optimize re-renders.
  • Atomic State Primitives - A library for managing application state using small, independent units called atoms that automatically track dependencies and trigger component re-renders.
  • State Management - A flexible system for handling complex data flows and side effects in web applications through composable state primitives.
  • Reactive State Graphs - Maintains a dependency graph to ensure derived state updates efficiently when source atoms change.
  • State Containers - A framework-agnostic state management solution that integrates with React components to provide granular updates and efficient data synchronization.
  • Component State Management - Reads and updates atomic state within components while optimizing re-renders through dependency tracking.
  • Write-Only State Actions - The state management system encapsulates state modification logic into dedicated write-only atoms to enable granular updates and cleaner component interfaces.
  • State Management Providers - Supports provider-based scoping to isolate state containers to specific component subtrees.
  • Promise-Based State Resolution - Integrates promises into the state model to handle remote data fetching as if it were synchronous.
  • Derived State - Defines atoms that compute values based on other atoms, automatically tracking dependencies to ensure synchronized state.
  • Server-Side Hydration Utilities - Ensuring consistent application state between server-rendered content and client-side interactivity by pre-populating state containers during initial load.
  • State Management - Primitive and flexible state management.
  • State Management - Primitive and flexible state management for React.
  • Data Access Hooks - Simplifies remote data fetching by providing hooks that manage loading and error states automatically.
  • Browser Storage Persistence - Synchronizes atom values with browser storage to maintain application state across page reloads.
  • Centralized State Stores - Exposes a central store interface for imperative state access outside the component render cycle.
  • Asynchronous Cancellation Patterns - The state management system supports abortable functions within atom definitions to manage side effects like data fetching with built-in cancellation signals.
  • Asynchronous Data Handling - Integrates remote API responses into the state model with built-in loading and error handling.
  • Proxy-Based Reactivity - Uses proxy-based mutable updates to allow intuitive state modification while maintaining immutability.
  • Server-Side Rendering Utilities - Pre-populates atoms with initial values during server-side rendering to ensure consistency between server and client.
  • Mutation Handlers - Enables updating remote data via GraphQL mutations with integrated state tracking.
  • State Debugging Utilities - The state management system records and replays state transitions using external debugging tools to analyze application behavior and reproduce specific states.
  • State Type Inference - Provides automatic type inference for state definitions to ensure consistency across the application.
  • Hierarchical State Composition - Links multiple state containers so child states automatically inherit and react to parent state changes.
  • Lazy Initializers - The state management system defers the computation of an atom's initial value until the first time it is accessed in the store.
  • Draft-Based Mutations - Updates complex state objects using mutable syntax by applying changes to a draft copy.
  • Scoped State Containers - Isolates atom state within specific component subtrees to prevent cross-request data leakage.
  • State Hydration Helpers - The state management system pre-populates atoms with specific initial values within a test environment to verify component behavior under controlled conditions.
  • Loading State Indicators - The state management system tracks the status of asynchronous operations to render fallback content instead of suspending the user interface during data retrieval.
  • State Selectors - Creates sub-atoms that track specific portions of larger state objects to optimize updates.
  • Reducer State Management - Centralizes complex state transition logic by dispatching actions to pure reducer functions.
  • GraphQL Clients - Executes GraphQL queries and binds results to reactive state atoms for automatic UI updates.
  • Cross-Tab Synchronization - Shares application state between browser tabs using the broadcast channel API.
  • Data Pagination Utilities - Supports paginated data streams through atoms to enable efficient fetching of subsequent pages.
  • Real-time Subscription Handlers - Maintains persistent connections to remote sources to receive and reflect real-time updates.
  • State Debugging Tools - Provides debugging utilities for state atoms to improve visibility and data consistency during development.
  • State Change Subscriptions - Registers callback functions that execute whenever specific state updates to run side effects.
  • List Decomposers - The state management system splits an atom containing an array into individual atoms for each element to allow components to subscribe to specific list items independently.
  • Parameterized Factories - The state management system generates unique atoms based on input parameters and caches them to ensure consistent state access for specific data identifiers.
  • State Machine Logic - Wraps state machine logic into atoms to synchronize complex component transitions with application state.
  • Logic Isolation Utilities - The state management system executes and validates complex state logic independently of the user interface by rendering hooks directly within a test runner.
  • Scoped Dependency Injection - Creates isolated state instances by injecting specific values into a scope.
  • URL State Synchronization - Creates two-way connections between application state and the browser URL for deep linking and state persistence.
  • Asynchronous Data Caching - Provides built-in caching for asynchronous operations to prevent redundant network requests.
  • External Store Synchronization Hooks - Binds external Redux stores to atoms to enable two-way data flow between the store and the component tree.
  • Vanilla State Interfaces - Exposes a central store interface for imperative state access outside the component render cycle.

Star history

Star history chart for pmndrs/jotaiStar history chart for pmndrs/jotai

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Jotai

Similar open-source projects, ranked by how many features they share with Jotai.
  • effector/effectoreffector avatar

    effector/effector

    4,837View on GitHub↗

    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

    TypeScriptbusiness-logiceffectorevent-driven
    View on GitHub↗4,837
  • midudev/jscampmidudev avatar

    midudev/jscamp

    3,811View on GitHub↗

    jscamp is a full-stack web development and education project focused on mastering JavaScript, TypeScript, and AI integration. It provides a structured curriculum and interactive exercises covering language fundamentals, frontend engineering, and backend API development. The project distinguishes itself through the implementation of autonomous AI agents capable of complex task automation, such as modifying files, managing servers, and executing API calls. It includes advanced AI development tools for conversational querying, real-time code suggestions, and automated repository analysis to gene

    JavaScriptbootcamp
    View on GitHub↗3,811
  • zerobias/effectorzerobias avatar

    zerobias/effector

    4,837View on GitHub↗

    Effector is a reactive state management library and data flow orchestrator designed for building complex, event-driven applications. It models application logic as a directed acyclic graph, where state updates and asynchronous side effects propagate automatically through declarative pipelines. By decoupling business logic from user interface layers, it allows developers to maintain state in independent containers that communicate via standard interfaces, ensuring the system remains framework-agnostic. The library distinguishes itself through its robust support for isolated execution scopes, w

    TypeScript
    View on GitHub↗4,837
  • day8/re-frameday8 avatar

    day8/re-frame

    5,532View on GitHub↗

    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

    Clojureclojurescriptre-framereact
    View on GitHub↗5,532
See all 30 alternatives to Jotai→

Frequently asked questions

What does pmndrs/jotai do?

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.

What are the main features of pmndrs/jotai?

The main features of pmndrs/jotai are: Application State Management, Atomic State Primitives, State Management, Reactive State Graphs, State Containers, Component State Management, Write-Only State Actions, State Management Providers.

What are some open-source alternatives to pmndrs/jotai?

Open-source alternatives to pmndrs/jotai include: effector/effector — Effector is a reactive state management library designed for building complex, event-driven applications. It functions… midudev/jscamp — jscamp is a full-stack web development and education project focused on mastering JavaScript, TypeScript, and AI… zerobias/effector — Effector is a reactive state management library and data flow orchestrator designed for building complex, event-driven… day8/re-frame — re-frame is a functional framework for building single-page applications in ClojureScript. It provides a centralized,… facebook/react — React is a JavaScript library for building user interfaces based on a component-driven architecture and unidirectional… mobxjs/mobx — MobX is a reactive state management library and fine-grained reactivity engine. It provides an observable data store…