State management

This boilerplate manages application state using Redux, makes it immutable with Immer and keeps access performant via reselect.

For managing asynchronous flows (e.g. logging in) we use redux-saga.

For routing, we use react-router in combination with connected-react-router.

We include a generator for components, containers, sagas, routes and selectors. Run npm run generate to choose from the available generators, and automatically add new parts of your application!

Note: If you want to skip the generator selection process, npm run generate <generator> also works. (e.g. npm run generate container)

Learn more

Architecture: components and containers

We adopted a split between stateless, reusable components called (wait for it...) components and stateful parent components called containers.

Learn more

See this article by Dan Abramov for a great introduction to this approach.