Runtime
Node
NVM (https://github.com/creationix/nvm) - node version manager - script to manage multiple active node.js versions, recommended by feathers document
Package manager
npm - package manager, most commonly used for managing Node.js modules, does nested dependency tree
many projects use both Bower and npm, use Bower for front-end packages and npm for developer tools
worth further reading: https://stackoverflow.com/questions/18641899/what-is-the-difference-between-bower-and-npm
yarn - claim to be faster, more reliable npm and totally compatible with npm & can be mixed in place of npm
npm install something --save-dev => yarn add something --dev
Bower - "package manager for the web", requires a flat dependency tree [2018: mostlay deprecated, use npm]
pnpm
Scarfolding
Yeoman - scaffolding tool, start a project from templates with command line (many cli - such as feathers cli - are built with yeoman)
Building Tools
nps - npm-package-scripts for better scripting
Debugging
ndb - start anything in debugger
Development
Postman - tool for writing testing REST api
Web framework
Express - web framework for node.js, Feathers can works on top of it to provide REST transport. "probably the most popular Node framework for creating web applications and APIs"
winston express-winston: to log REST-API request/response
cors - CORS
Feathers.JS - web framework, really easy to implement service (RESTful) and hooks (aspect programming), authentication, database etc
Web application / UI framework
Angular - seems to be more heavy then the other two React / Vue, steep learning curve
React - Facebook UI framework, with Redux for state management
Vue - some say really simple, but much younger than Angular & React
Server / client server libraries
Socket.io - two way real time communication between server and browser
Database
Sequelize - ORM javascript
Knex - ORM javascript
Commons utils
Underscore.js
Lodash - inspired by underscore and superceding
Specific utils libraries
moment.js - parse / handle time
debug - to replace console.log
argon2 - secure hashing user password
https://github.com/ai/nanoid/ - smaller, faster, stronger UUID
https://www.npmjs.com/package/class-transformer - class / plain Object transformer
Data Validation (Typescript)
Testing
Jest - the current most popular one
Istanbul - test code coverage
Mocking - sinon, jest
Building / task automation
Grunt - task automation, "gulp's older & more sluggish brother", "configuration can be a nightmare" [2018 mostly obsolete]
Gulp - build tools, or process automation tool, automate repeat tasks, file stream -> tasks -> destination
npm run-script - easy and simple way to do it
webpack - packages .js & much more into modules, and webpack-dev-server provides excellent js development experience