I've migrated my work over to this location: https://gitlab.com/zdragnar/react-redux-starter
not setup as isomorphic
Note: This was originally intended to use jspm / system.js; however, because that project is still tied to babel 5.2.8 at the time of this writing, the project is using Browserify. Expect this to change at some point in the future.
This is a rough outline of a project setup with:
Tools:
- Airbnb eslint config
- Babel 6.1.2
- gulp
- browserify
Libraries:
- React
- react-router
- Redux
- redux-simple-router (exposes an action to invoke route changes)
- tcomb (provides immutable, typed objects and collections)
- tcomb-form (provides form markup validation, validation and error styling based on tcomb types)
- axios (for making AJAX requests)
Reducing boilerplate:
- redux-create-router (more or less copied from the reducing boilerplate tutorial)
- src/scripts/actions/createAsyncActions.js
- this one is a hand-rolled action creator function, unlike common middleware solutions such as redux-async-flow or redux-combine-actions
- It's used primarily to demo how easy it is to roll your own, and depending on your taste you may want one of the above two instead
Totally tangential additions:
- swagger-mock-api because it's handy
- watch-based building and live reloading via
gulp --watch
TODO:
- Add immutable support (note: done with the delightful tcomb )
- Add react router
- Integrate react-router into redux state using redux router
- Add some async actions
- Follow this issue and upgrade babel version when appropriate to get decorator support back
- Implement PostCSS or SASS
- Implement some smart and dumb components
- Fix the Gulpfile
- Add in other requisite tasks to support SASS / PostCSS
- Add basic assets such as a favicon