# easy-peasy

> Vegetarian friendly state for React

Latest version **6.1.1** (published 2026-04-08) · MIT license · 0 weekly downloads

## Install

```sh
npm install easy-peasy
pnpm add easy-peasy
yarn add easy-peasy
bun add easy-peasy
```

## Health

**Score 60/100 (C)** — status: stable.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 6.1.1 |
| Published | 2026-04-08 |
| First published | 2018-04-14 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 7 |
| Unpacked size | 412.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 5041 |
| Maintainers | ctrlplusb, no-stack-dub-sack, jmyrland |
| Keywords | react, redux, state, typescript |

## Links

- npm: https://www.npmjs.com/package/easy-peasy
- Repository: https://github.com/ctrlplusb/easy-peasy
- Homepage: https://easy-peasy.dev
- Issues: https://github.com/ctrlplusb/easy-peasy/issues
- npm.io page: https://npm.io/package/easy-peasy

## Dependencies (7)

- [immer](https://npm.io/package/immer.md) ^9.0.21
- [redux](https://npm.io/package/redux.md) ^5.0.1
- [redux-thunk](https://npm.io/package/redux-thunk.md) ^3.1.0
- [ts-toolbelt](https://npm.io/package/ts-toolbelt.md) ^9.6.0
- [@babel/runtime](https://npm.io/package/@babel/runtime.md) ^7.22.6
- [fast-deep-equal](https://npm.io/package/fast-deep-equal.md) ^3.1.3
- [use-sync-external-store](https://npm.io/package/use-sync-external-store.md) ^1.4.0

## Recent versions

- 6.1.1 (latest) — 2026-04-08
- 7.0.0-beta.2 (beta) — 2026-05-04
- 6.1.0-alpha.0 (alpha) — 2025-02-17
- 4.0.2 (previous) — 2021-10-13
- 5.0.0-alpha.2 (next) — 2020-10-27
- 4.0.0-beta.1 (four) — 2020-09-25
- 3.2.4-alpha.0 (test) — 2019-11-18
- 2.3.1-alpha.3 (patch) — 2019-06-03
- 2.2.0-alpha.6 (zombies) — 2019-03-25
- 1.8.0-alpha.9 (typescript) — 2019-01-30
- 1.8.0-alpha.3 (typescript-cc) — 2019-01-26
- 7.0.0-beta.1 — 2026-05-04
- 7.0.0-beta.0 — 2026-05-04
- 6.1.0 — 2025-02-19
- 6.0.5 — 2024-07-12
- … 258 more at https://npm.io/package/easy-peasy/versions

## README

<p>&nbsp;</p>
<p align='center'>
  <img src="./website/docs/assets/logo-small.png" width="150" />
</p>
<p align='center'><strong>Vegetarian friendly state for React</strong></p>
<p>&nbsp;</p>

[![npm](https://img.shields.io/npm/v/easy-peasy.svg?style=flat-square)](http://npm.im/easy-peasy)
[![MIT License](https://img.shields.io/npm/l/easy-peasy.svg?style=flat-square)](http://opensource.org/licenses/MIT)
[![Codecov](https://img.shields.io/codecov/c/github/ctrlplusb/easy-peasy.svg?style=flat-square)](https://codecov.io/github/ctrlplusb/easy-peasy)

<p>Easy Peasy is an abstraction of Redux, providing a reimagined API that focuses on <strong>developer experience</strong>. It allows you to <strong>quickly</strong> and <strong>easily</strong> manage your state, whilst leveraging the strong <strong>architectural guarantees</strong> and extensive <strong>eco-system</strong> that Redux has to offer.</p>

<ul>
  <li>Zero configuration</li>
  <li>No boilerplate</li>
  <li>React hooks based API</li>
  <li>Extensive TypeScript support</li>
  <li>Encapsulate data fetching</li>
  <li>Computed properties</li>
  <li>Reactive actions</li>
  <li>Redux middleware support</li>
  <li>State persistence</li>
  <li>Redux Dev Tools</li>
  <li>Global, context, or local stores</li>
  <li>Built-in testing utils</li>
  <li>React Native supported</li>
  <li>Hot reloading supported</li>
</ul>

<p>&nbsp;</p>

All of this comes via a single dependency install.

```
npm install easy-peasy
```

<p>&nbsp;</p>

## Fly like an eagle 🦅

**Create your store**

```javascript
const store = createStore({
  todos: ['Create store', 'Wrap application', 'Use store'],

  addTodo: action((state, payload) => {
    state.todos.push(payload);
  }),
});
```

**Wrap your application**

```javascript
function App() {
  return (
    <StoreProvider store={store}>
      <TodoList />
    </StoreProvider>
  );
}
```

**Use the store**

```javascript
function TodoList() {
  const todos = useStoreState((state) => state.todos);
  const addTodo = useStoreActions((actions) => actions.addTodo);
  return (
    <div>
      {todos.map((todo, idx) => (
        <div key={idx}>{todo}</div>
      ))}
      <AddTodo onAdd={addTodo} />
    </div>
  );
}
```

<p>&nbsp;</p>

## Examples 📚

See the [example folder](./examples) for more examples of how to use
`easy-peasy`.

<p>&nbsp;</p>

## Core Team 🛠

<table>
  <tr>
  <td>
    <a href="https://github.com/no-stack-dub-sack">
      <img src="https://avatars.githubusercontent.com/u/18563015?v=4" width="100px;" alt=""/>
      <br />
      <sub><b>Peter Weinberg</b></sub>
    </a>
  </td>
  <td>
    <a href="https://github.com/jmyrland">
      <img src="https://avatars.githubusercontent.com/u/837651?v=5" width="100px;" alt=""/>
      <br />
      <sub><b>Jørn A. Myrland</b></sub>
    </a>
  </td>
  <td>
    <a href="https://github.com/ctrlplusb">
      <img src="https://avatars.githubusercontent.com/u/12164768?v=4" width="100px;" alt=""/>
      <br />
      <sub><b>Sean Matheson</b></sub>
    </a>
  </td>
  </tr>
</table>

<p>&nbsp;</p>

## Our Sponsors ❤️

We have only but great appreciation to those who support this project. If you
have the ability to help contribute towards the continued maintenance and
evolution of this library then please consider
[[becoming a sponsor](https://opencollective.com/easy-peasy#backer)].

<a href="https://opencollective.com/easy-peasy#backers">
    <img src="https://opencollective.com/easy-peasy/backers.svg?width=950" />
</a>

<p>&nbsp;</p>

## Documentation

See the [official website](https://easy-peasy.dev) for tutorials, docs, recipes,
and more.

<p>&nbsp;</p>

## OS Awards Nominee

Easy Peasy was nominated under the "Productivity Booster" category.

---
_Source: https://npm.io/package/easy-peasy · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
