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).