

Everything-in-my-life-as-code FTW
Besides everything else you said, I especially love how you can store entire bash scripts in the nix configs, and even populate pieces of said scripts with variables if you so desire.
Also, if you run nixops
, it’s much easier to work with if your dev system is also running NixOS.
It’s for deployments and managing many environments/machines from a single CLI interface. You can do all sorts of things like push configs based on labels/groups, gather real-time data/logs, scale up/down. It’s great when you have a lot of VPS/VDS/VMs to manage and you’re not using a platform’s specific management tools.
I mainly use NixOS as a barebones backend, keep it as minimal and hardened as I can, then most of the projects/apps that run are done through something like Docker or k8s. So for me, it’s all about managing the underlying servers that provide the tools needed for a project to operate.
The tool itself is undergoing a pretty big redesign at the moment, but you can get the gist of it from the overview in the manual of the commands.
https://hydra.nixos.org/build/115931128/download/1/manual/manual.html#chap-overview