Skip to Content

.js stack

I’m asked sometimes, and thought before about recording JS libraries and tools I often use. Not all these tools are cherished, and some are used downright begrudgingly. I consider some of the tools to be chosen for me by the community – as in I don’t question their use or alternatives beyond academic discussion. The reason for this is quite simple; there is a community for support and development that can make a greater impact in resolution and I don’t have the time/energy/interest/knowledge to properly vet every option.

I am not a born and bred JavaScript developer, and I find a lot of friction in this landscape when choosing tools and libs. When I find something that has a large user base, actively developed, moderately mature, simple and extensible enough for my current project I’ll throw it on the list. The items on the list are not limited to just client products. I develop as much for the server as I do for the client.

I may create a list for other environments I enjoy/use.

Now the list (client heavy libraries/products first).

Bootstrap

  • great/full featured component library/style framework for responsive/mobile front ends

jQuery

  • ignore the haters, there is still a tonne of relevancy in this widespread, tested, stable library
  • using a proper bundler also removes the bloat concern

PostCSS

React

  • ignore the keyboard lawyers (including myself), the license is of no concern for you – and if it is there are drop-in replacements.

Babel

  • transpiler
  • can’t live without promises, spread operator, or class syntax
  • presets: env, react, stage-1
  • can be used for server and client code (babel-node in dev and transpile for release)

ESLint

  • my preferred linter
  • plenty of editor support (Atom, VSCode, etc.)
  • plugins: babel
  • rules: google, react

Express

  • web framework
  • minimal deps: body-parser, cookie-parser
  • I don’t have a preference for multi-part handler middleware – pick the simplest in my opinion.

Immutable

  • still has its place in my stack – keeping honest people honest

isomorphic-fetch

  • gives you a consistent API on both the client and server

Jest

  • testing framework (originally switched to due to React/JSX support)

nodemon

  • indispensable development utility, unless of course you’re able to write bug free and complete code the first time

node-postgres

  • PostgreSQL is my rdbs of choice for the at least last 10 years.

Mongoose

  • MongoDB for when you want a nosql server.

Redux

  • state container/pattern implementation
  • typically used with React (don’t forget the bindings: react-redux)
  • for any non-trivial React project a flux implementation is vital (this is my choice)
  • make sure to use redux-devtools

webpack

That’s the list as it stands today. This is not a gospel (nor even recommendation), just products that have worked for me so far. I reserve the right to drop any item from the list at any time.