Nixpkgs let you specify exact versions for all your system dependencies and build tools, but it does not support a lot of languages
Asdf provides a language agnostic general version manager (as opposed to nvm, rbenv, etc). It supports a number of popular languages.
Gitpod let's you develop against remote servers with a docker image with your build tools preinstalled.
I like gitpod the most because the dev envs are more ephemeral, easier to share, but I may try asdf.