Best practices / quality of life:
- Flatten src directory structure with READMEs that explain what belongs where:
- config (store configuration, environment, api client)
- effects (side effects, thunks, sagas)
- Combine containers and components ()
- It's not that the container is the thin wrapper around a component that connects it to redux, it's that the connected components should be considered containers where communication with the greater ecosystem are concentrated. Let people add a containers directory if they have enough of them that it helps to split it out - don't start under that presupposition.
- Convert index.jsx files to files named for their contents.
- Sub-components in directory named for the above component.
- .test.jsx and .messages.jsx files as peers of their component.
- Separate dev and prod redux store configurations in config directory.
- Add codecov to .travis.yml
- Webpack config updates (misc)
- Application structure readme (How do I structure a frontend app with unidirectional data flow so it stays organized? What goes where, how should I think about it?)
Test/code examples (maybe as gists linked from the README?)
- Component enzyme assertion testing
- Connected component testing
- jest.mock() examples
- jest.spyOn() examples
- redux reducer tests
- redux-thunk tests
- redux-saga tests
- Service / side effect tests
- Action tests
- Usage of paragon components with redux-forms
Issues to address:
Packages to use (most of these don't exist, but maybe should):