Redux Box
Guide
  • A simple counter
  • Async data fetching
  • GraphQL: Apollo
  • GraphQL: React Query
  • Production-shaped apps
  • CRUD over REST
  • Trello board over GraphQL
API
GitHub
Guide
  • A simple counter
  • Async data fetching
  • GraphQL: Apollo
  • GraphQL: React Query
  • Production-shaped apps
  • CRUD over REST
  • Trello board over GraphQL
API
GitHub
Redux Box

Redux Box

A modular, batteries-included container for Redux + Redux-Saga applications.

Get Started →Core ConceptsGitHub

Modular by design

Organize your store as a collection of independent modules — each bundling its own state, mutations, sagas, and selectors. Drop them into any Redux app and they just work.

Less boilerplate

No more juggling action types, action creators, and reducers across files. Define a module once, in one place, and you're done.

Mutate without mutating

Powered by Immer, write reducers as if you were directly mutating state — and get true immutability under the hood.

Sagas, built in

Redux-Saga is wired up for you. Just declare your effects inside a module and let redux-box handle the rest.

Works everywhere

One container, any frontend — drop redux-box into React, React Native, or any JS app that speaks Redux.

Familiar Redux

No new bizarre terms or magic. Underneath it's still plain Redux, so your devtools, middleware, and ecosystem all keep working.

Quick start

Install redux-box:

yarn add redux-box

Wire up your store from a few independent modules:

import { createStore } from 'redux-box';
import { module as userModule } from './user';
import { module as postModule } from './post';

export default createStore([userModule, postModule]);

Head over to the Getting Started guide for a full walkthrough.

See it in real apps

Two end-to-end TypeScript apps that ship as part of this repo and deploy on every release:

  • CRUD over REST — posts CRUD against JSONPlaceholder with optimistic updates, normalised state, and React Testing Library coverage. Source
  • Trello board over GraphQL — drag-and-drop kanban backed by GraphQL Zero, with optimistic mutations and a mocked GraphQL transport in tests. Source

The Production-shaped apps page walks through what each one demonstrates and how the folder structure is laid out.

MIT Licensed | Copyright © Anish Kumar