# Easy Peasy — Vegetarian-Friendly State Management for React > A zero-boilerplate abstraction over Redux that provides React hooks, computed properties, effects, and persistence out of the box. ## Install Save in your project root: # Easy Peasy — Vegetarian-Friendly State Management for React ## Quick Use ```bash npm install easy-peasy ``` ```jsx import { createStore, StoreProvider, useStoreState, action } from "easy-peasy"; const store = createStore({ todos: [], addTodo: action((state, payload) => { state.todos.push(payload); }), }); function App() { const todos = useStoreState((s) => s.todos); return ; } ``` ## Introduction Easy Peasy wraps Redux with a clean, hook-based API that eliminates boilerplate. You define your store as a plain JavaScript object with actions, computed properties, and effects. The library handles immutable updates, memoized selectors, and middleware configuration behind the scenes. ## What Easy Peasy Does - Provides a simple model-based API for defining Redux stores - Supports actions (sync mutations), thunks (async side effects), and computed properties - Offers React hooks (useStoreState, useStoreActions) for accessing state - Includes built-in data persistence, dev tools integration, and TypeScript support - Allows store injection for testing without mocking Redux internals ## Architecture Overview Under the hood, Easy Peasy uses Redux as its state container and Immer for immutable updates. When you define a model object, the library traverses it to generate Redux reducers, action creators, and selectors automatically. Computed properties use Reselect-style memoization. The React binding layer exposes hooks that subscribe to specific slices of state, re-rendering only when those slices change. ## Self-Hosting & Configuration - Install: `npm install easy-peasy` - Define a store model as a plain object with actions and thunks - Wrap your app with `` - Access state and actions via `useStoreState` and `useStoreActions` hooks - Enable Redux DevTools automatically (no extra configuration) ## Key Features - Zero boilerplate: no action types, switch statements, or mapStateToProps - Full TypeScript inference from your model definition - Built-in persist API for localStorage or AsyncStorage - Computed properties with automatic memoization - Redux DevTools support with no additional setup ## Comparison with Similar Tools - **Redux Toolkit** — official Redux wrapper; Easy Peasy provides an even simpler model-based API - **Zustand** — minimal store without Redux; Easy Peasy leverages Redux ecosystem compatibility - **Jotai** — atomic state primitives; Easy Peasy uses a single centralized store - **MobX** — observable-based reactivity; Easy Peasy uses immutable state with Immer - **Recoil** — graph-based atoms; Easy Peasy uses a hierarchical model tree ## FAQ **Q: Do I still need Redux if I use Easy Peasy?** A: Easy Peasy includes Redux as a dependency and configures it for you. You do not need to install or configure Redux separately. **Q: Can I use Redux middleware with Easy Peasy?** A: Yes. Pass custom middleware to `createStore` via the middleware option. Redux Saga, Logger, and other middleware work as expected. **Q: Is it suitable for large applications?** A: Yes. Easy Peasy scales well because it splits models into slices and leverages Redux's proven architecture under the hood. **Q: Does it support React Native?** A: Yes. Easy Peasy works in any React environment, including React Native and Next.js. ## Sources - https://github.com/ctrlplusb/easy-peasy - https://easy-peasy.dev --- Source: https://tokrepo.com/en/workflows/asset-ce4454d4 Author: AI Open Source