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
·
ctrlplusb avatar

ctrlplusb/easy-peasy

0
View on GitHub↗
5,044 stars·190 forks·JavaScript·MIT·26 viewseasy-peasy.dev↗

Easy Peasy

Easy-peasy is a React state management library and typed framework that provides a centralized store for managing global application state. It functions as an immutable state store and an async state orchestrator, ensuring end-to-end type safety for state definitions, actions, and derived values.

The library distinguishes itself by converting direct mutation syntax into immutable updates to simplify the management of nested data. It includes a mechanism for persisting the state tree to storage and rehydrating it during the application boot process, with the ability to suspend the user interface until rehydration is complete.

The framework covers several capability areas, including the orchestration of asynchronous API calls with optimistic rendering and the calculation of cached derived state. It also provides tools for managing non-urgent updates and accessing the store outside of React components.

Features

  • Centralized State Stores - Implements a centralized immutable object tree that serves as the single source of truth for all application state.
  • Global State Managers - Provides a centralized global state manager to synchronize and share data across multiple React components.
  • Global State Update Handlers - Provides predefined action functions to update the global state store in response to application events.
  • State Mutation Interceptors - Automatically transforms direct state mutation operations into immutable updates for efficient React rendering.
  • Immutable Mutation Converters - Converts direct mutation syntax into immutable updates to simplify the management of nested state data.
  • Browser Storage Persistence - Saves the application state tree to browser storage and automatically restores it upon restart.
  • State Rehydration - Provides mechanisms to serialize the state tree to persistent storage and restore it during application boot.
  • Asynchronous State Transition Orchestration - Coordinates state transitions that depend on the resolution of asynchronous API calls and side effects.
  • End-to-End Type Safety Frameworks - Ensures consistent data structures and type safety across state definitions, actions, and derived values.
  • Proxy-Based Immutability - Converts direct mutation syntax into immutable state updates using proxies to simplify nested data management.
  • State Management Frameworks - Implements a structured framework for managing application state with a single source of truth and full type safety.
  • Mutation-Syntax Immutable Updates - Allows updating complex state trees using mutation syntax that automatically converts into immutable changes.
  • Application State Managers - Provides a structured store to coordinate global data sharing and predictable updates across the user interface.
  • Async State Orchestration - Orchestrates asynchronous API calls and side effects to update the global state with optimistic rendering.
  • Derived State - Calculates new values from existing state to maintain consistency and prevent data redundancy.
  • State Management Libraries - Provides a centralized store and framework for managing global application state in React.
  • Immutable State Stores - Functions as an immutable state store that converts direct mutations into immutable updates.
  • Memoized Getters - Uses JavaScript getters to compute and cache dependent state values, ensuring efficient UI updates.
  • Application State Persistences - Persists the application state tree to local storage and restores it during the initial boot process.
  • Asynchronous Action Handling - Handles the lifecycle of asynchronous API calls to update the application state based on remote data.
  • Async Action Coordination - Provides a system for orchestrating asynchronous API calls and coordinating their results back into the central store.
  • Typed Store Decorators - Uses TypeScript generics and class decorators to ensure strict type safety across the state management lifecycle.
  • Store Definition - Employs classes and decorators to define the structure and logic of the application data store.
  • Asynchronous Side Effect Dispatchers - Encapsulates asynchronous logic and side effects in functions that update the central state store.
  • Deferred Interface Updates - Maintains UI responsiveness by utilizing stale state values while expensive derived selections are computed in the background.
  • Stale-While-Revalidate - Implements a stale-while-revalidate strategy to provide immediate cached state while updating in the background.
  • Optimistic Updates - Displays predicted state values immediately during async actions to maintain a responsive user interface.
  • Transition-Wrapped Updates - Prevents expensive re-renders from blocking the interface by wrapping updates in transitions with pending status flags.
  • State Management - Easy global state management for React.
  • React - A JavaScript library for building user interfaces - Listed in the “React - A JavaScript library for building user interfaces” section of the Awesome Redux awesome list.

Star history

Star history chart for ctrlplusb/easy-peasyStar history chart for ctrlplusb/easy-peasy

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

Frequently asked questions

What does ctrlplusb/easy-peasy do?

Easy-peasy is a React state management library and typed framework that provides a centralized store for managing global application state. It functions as an immutable state store and an async state orchestrator, ensuring end-to-end type safety for state definitions, actions, and derived values.

What are the main features of ctrlplusb/easy-peasy?

The main features of ctrlplusb/easy-peasy are: Centralized State Stores, Global State Managers, Global State Update Handlers, State Mutation Interceptors, Immutable Mutation Converters, Browser Storage Persistence, State Rehydration, Asynchronous State Transition Orchestration.

What are some open-source alternatives to ctrlplusb/easy-peasy?

Open-source alternatives to ctrlplusb/easy-peasy include: day8/re-frame — re-frame is a functional framework for building single-page applications in ClojureScript. It provides a centralized,… vuejs/vuex — Vuex is a centralized state management library for Vue.js applications. It provides a single source of truth for… effector/effector — Effector is a reactive state management library designed for building complex, event-driven applications. It functions… ngrx/platform — This project is a state management framework for Angular applications that provides a predictable state container. It… mweststrate/use-immer — use-immer is a React state management utility that provides a custom hook for updating immutable state. It allows for… pmndrs/jotai — Jotai is a state management library for React applications that utilizes an atomic model to handle data. It organizes…

Open-source alternatives to Easy Peasy

Similar open-source projects, ranked by how many features they share with Easy Peasy.
  • 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
  • vuejs/vuexvuejs avatar

    vuejs/vuex

    28,342View on GitHub↗

    Vuex is a centralized state management library for Vue.js applications. It provides a single source of truth for application data, ensuring consistent state across a component tree through a reactive data store. The system organizes the global state tree into independent, namespaced modules to prevent naming collisions and maintain code organization. It distinguishes between synchronous mutations for predictable state transitions and asynchronous actions for handling complex operations. The library includes cached getters for derived state, store lifecycle hooks for mutation interception, an

    JavaScriptjavascriptstate-managementtime-travel
    View on GitHub↗28,342
  • 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
  • ngrx/platformngrx avatar

    ngrx/platform

    8,320View on GitHub↗

    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

    TypeScript
    View on GitHub↗8,320
  • See all 30 alternatives to Easy Peasy→