I switched to NixOS because I wanted a declarative system that isnt’t yaml soup bolted onto a genetic distro.
By 2022, my desktop system was an unmanagable mess. It was a direct descendant of the Debian I installed in 1997. Migrated piece by piece, even switched architectures (multiple times! I386->ppc-i386->amd64), but its roots remained firmly in 1997. It was an unsalvagable mess.
My server, although much younger, also showed signs of accumulating junk, even though it was ansible-managed.
I tried documenting my systems, but it was a pain to maintain. With NixOS, due to it being declarative, I was able to write my configuration in a literate programming style. That helps immensely in keeping my system sane. It also makes debugging easy.
On top of that, with stuff like Impermanence, my backups are super simple: btrfs snapshot of /persist
, exclude a few things, ship it to backup. Done. And my systems always have a freshly installed feel! Because they are! Every boot, they’re pretty much rebuilt from the booted config + persisted data.
In short, declarative NixOS + literate style config gave me superpowers.
Oh, and nixos’s packaging story is much more convenient than Debian’s (and I say that as an ex-DD, who used to be intimately familiar with debian packaging).
While I am not a fan of Nix the language, it is no more insane than ansible or kubernetes yaml soups.
As for packages… nixpkgs is by far the largest repo of packaged software. There are very few things I haven’t found there - and they are usually not in any other distro either.