It's incredible at setting your system configuration in stone, and moving it across computers. I was able to move my exact desktop setup across pc's extremely easy. Also my favorite use case of nix was orchestrating together all the -arrs for a media server. The problem is as soon as you want to start messing with something that's not defined in the nixos / home manager configuration file it gets extremely messy fast. You basically have to reverse engineer other people's nixpkg's and outdated blog posts to figure out how it works. If you just go by the github repo, reverse engineering won't work because every nix package has an implied "import" that's not shown in the repo. That little hangup got me for months lol. Also if you want to compile software, it is a massive pain due to how the directories are all insane hashes, and isolated. I tried to compile emacs from source for like a week on nixos and I couldn't figure out how to do it. Even copying from someone's blog post that said "here's how I build emacs from source on nix". And that's coming from someone who's packaged a couple things successfully. Basically it just makes everything you do on linux 3x as complicated for increased isolation.