+1. I personally have always wanted to write down my thoughts on NixOS in a long-ish form post.
But it’s just really hard to articulate. NixOS is such a step above any other distro that it becomes hard to convey exactly why this is the case. It is also because so many pieces work together in tandem - both above and below the covers so to speak - to make this the case.
Here is a random dump of features that I have found both valuable and very difficult to achieve on other distros:
* Config rollback in bootloader to undo mistakes without needing to boot from recovery media
* Flake lockfiles to pin all config and packages
* Config layering: base config that applies to all machines, per-machine overrides, etc
* NixOS module system, very useful to conditionally enable functionality (e.g. subset of machines run Syncthing)
* Rebuild a host over SSH by copying over packages via nixos-rebuild
* Image builders i.e. Packer-lite (now in nixpkgs)
* Build a live CD/USB custom installer to quickly boot from with your own packages, user, dotfiles, etc
* NixOS integration testing framework (extremely powerful), makes package and config stability better under the hood in nixpkgs
* Build and run your config as a QEMU VM
* nixos-anywhere to convert a running Linux machine into NixOS, very useful for VPS/cloud machines
* Stylix for centralized theming config across apps
* Natively build a Docker image from your package