Web Development Environment on Specified Version of NodeJS, with Nix

The Goal Web development was fun but setting up the environment can sometimes be tedious because you might need multiple versions of NodeJS installed (hint: not all npm packages are compatible with all versions of NodeJS). Many developers uses nvm to manage their NodeJS versions, and it works great. However, since we are NixOS fans and Nix itself is a great package management tool, we would like to use it to manage our web development environment as well.