- task runner: npm scripts
- client bundler: browserify
- utility functions: lodash
- directory structure:
/app/- symlink
/appto/node_modules/app - e.g.
/app/package.json/app/client.js/app/server.js/app/thing/schema.js/app/thing/service.js/app/thing/client.js/app/thing/routes.js/app/thing/views/thing-list.js/app/thing/views/thing-list.css/app/thing/tests/views/thing-list.js/app/list-view/index.js
- always require top-down (
require('things/schema')) instead of relative.
- symlink
/config/{ NODE_ENV }.js
- transport:
WebSocket - classes: stampit
- configuration: feathers-configuration
- data model: tcomb
- database: knex
- data validator: tcomb-validator
- api service: feathers-knex
- api authentication: feathers-authentication
- api transport: primus
- api client: feathers-client
- client async actions: redux-thunk
- client actions: redux-tcomb
- client action-types: create-action-types
- client reducers: redux-tcomb
- client getters: reselect
- client store: redux
- client router: redux-router
- client views: react
- client forms: tcomb-form
- tests: ava
- configuration: configurify
- database: level-model
- data validator: is-my-json-valid
- api service: multilevel
- api transport: websocket-stream
- api client: multilevel
- client async actions: redux-thunk
- client actions: redux-actions
- client action-types: create-action-types
- client getters: reselect
- client store: redux
- client views: virtual-dom
- tests: tape
- service: muxrpc
- streams: pull-stream