State management

This architecture 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, api, actions, sagas, routes and mocks. Run yarn 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, yarn generate <generator> also works. (e.g. yarn generate route)

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.