This is disappointing. Partially for bikeshed reasons, but also for practical ones. Redux thunk is an anti pattern as far as I'm concerned but you're including it by default? Why? Just because it's the first (bad) decision people make when trying to handle async code doesn't mean it's the one that should be canonized.
The createAction function is unnecessarily verbose and the createReducer function obscures more than it abstracts.
The createAction function is unnecessarily verbose and the createReducer function obscures more than it abstracts.