Well nixos is really great if your package and options are already thought through by the maintainers, although you might have to read through nixpkgs for options. It's more painful if you need X compiled with Y enabled and it needs to rebuild (might be slow on vps), and if your package isn't included at all, it can be a pain to add a new one and get all the dependencies included.
Once it works though, it basically never breaks - you can always pick an older working version.
Oh and it eats disk space like there's no tomorrow if you have multiple generations retained.