
The Distro Nobody Ranks
The Distro Nobody Ranks
I’ve daily-driven or at least tried most of the mainstream distros. Ubuntu, Mint, Kali, and a pile of others I no longer remember installing. NixOS is the first one that matched how I already work, which is writing config down and committing it to Git. The whole system is described in files, so changes are reviewable, repeatable, and reversible. For tinkerers, nothing else I’ve used comes close.
The workflow is boring, which is the point, and it works at two levels. The bare version needs no Git at all. I edit the config, rebuild, and switch. If I broke something, I reboot, arrow down once or twice in the boot menu, pick the previous generation, and hit enter. I’m back on the last working system with no reimaging and no restoring from backup.
Git is the second layer, and it makes the same loop better. I edit the config and commit it. Then I run a test rebuild, which activates the change without making it the boot default, so a reboot undoes it. If it works, I run the real switch and push to the remote. If it breaks, I reboot and I’m back on the last working system. If a bad switch ever gets past test, the boot menu is still there. Then I fix the config, commit again, rebuild, and confirm it works.
Credit where it goes: rollback comes from generations, not Git. Git gives me a history of every change with diffs, an off-machine copy of the whole system definition, and the ability to rebuild on new hardware straight from the repo. The Git server is self-hosted, so none of it sits on someone else’s platform.
The Bill
Now the bill. The Nix language is a wall. You can get by on copy-paste for a while, but anything past the basics means actually learning it. Error messages are poor, and the documentation is fragmented and sometimes outdated. There’s no standard filesystem layout, so prebuilt binaries and vendor installers often fail. nix-ld, FHS environments, and patching help, but it’s friction other distros don’t make you carry. With flakes, new files have to be staged in Git or the build can’t see them, and that one surprises everybody once. Old generations eat disk until you garbage-collect. Proprietary and fast-moving software gets packaged late or badly. There are no vendor support contracts, no STIG or SCAP content, and vendor agents are built for RHEL and Ubuntu, so most regulated environments are out.
The binary problem is the one AI has shrunk the most for me. A few things I wanted were missing from nixpkgs, marked broken, or only worked against an older package set. With AI help I wrote the packaging myself and patched the binaries so they find their libraries, and now they run, tailored to my system. On NixOS I control the packaging around a program. Elsewhere, when a downloaded binary won’t run, you’re fucked and there’s nothing to change.
The other thing I love is how Git works across machines. Say you do your real work on a desktop and keep a laptop that barely gets used. On most systems that laptop rots until the night before you need it. Here I push from one machine, pull on the other, and rebuild, and the laptop ends up very close to the desktop. Close, not identical, because the hardware config stays separate from the software config and everything I stare at day to day. That separation is the whole trick. When I want to grab the laptop and work from a coffee shop, I’m not hauling the big desktop, and I’m not spending an hour catching the laptop up. It scales past two machines too. Each box still needs its own rebuild, or a deploy tool if you want to push to all of them at once, but the config work happens once.
No Tier Lists for You!!!
Tier lists rank distros for general users. NixOS only pays off if you want to manage a system as code, so it rarely shows up. Niche fit, not a bad distro. That part I get. What I don’t get is why it isn’t more common in the tinkering and modding crowd, the people who already live in config files. Or am I way off base and it is and I just haven’t found the right modding communities? If so please let me know.