Packages
As far as Redux related packages go, so we haven't yet needed any packages besides the core redux and react-redux. Besides these, Reselect seems to be useful too from time to time.
File Structure
File structures are a really subjective. We use the following structure:
src
app
common
components
...
account-settings
actions
__tests__
action-1.js
action-2.js
...
index.js
reducers
__tests__
reducer-1.js
reducer-2.js
...
index.js
containers
__tests__
component-1.js
...
components
__tests__
pure-component-1.js
...
bundle.js
profile
actions
reducers
containers
components
bundle.js
We divide stuff by modules, so the parts related to each module are near each other in a common parent folder. This saves us time from having to look far into other directories in search of components/actions/reducers/whatever related to the module we're working on.
common hold common components, reducers or other piece of code that you could use across multiple modules.__tests folder which holds tests for that particular concern.bundle.js contains the code for bundling up this particular module. It creates a store and uses Provider from the react-redux to render the app.Ajax Requests
We simply use the request library.
State management/flow
We strictly follow the conventions and methods discusses by Dan Abramov in the official Redux tutorial. It has worked well for us so far.