In nixOS my USPs are its reproducability and its “integrated toolchain manager”.
- Backing up and restoring
/etc/nixos
is enough to re-install all system relevant software, while backing up and restoring~/.config/nixpkgs
is enough to install user related programs and their configuration. - In each project I can have a
shell.nix
or adefault.nix
which describes the development environment. Usually one loads this environment manually, though tools around that have been developed which make me able to enter the environment on dir change. as well as aggressive caching of those environments.