the awful.systems server cluster runs on an open infrastructure based on NixOS and Nix flakes, and though it desperately needs cleanup in some places, it’s still a pretty good example of how to use a Nix flake to deploy NixOS in production. feel free to browse the repo and ask any questions about how it works, or about Nix in general!
also, if I get hit by a bus, this can be used to redeploy awful.systems elsewhere. an existing admin who isn’t in the hospital or the grave can import a database backup and get back up and running!
and as always, contributions are welcome.
of course!
you’re definitely right about needing to be a particular type of insane for Nix to fully click, and I’ve seen enough people bounce off of it that I try to make Nix optional (but very nice to have) wherever I can
with that said, there are a few areas where what Nix does is irreplaceable. broadly, areas like deployments (devops), embedded development (where Nix’s methods of cross compilation and target configuration are much saner and more reliable than average), and developer tooling are where it’s extraordinarily difficult to replicate what Nix provides, and those are also the areas where I’ve personally seen the most production usage of Nix.
I don’t personally coordinate a professional team that uses Nix, but it might be worth looking up impressions from companies that do. to my memory, two companies I know use Nix heavily are Pololu Robotics and replit (which uses Nix as a user-facing part of their developer tooling; fair warning though, last time I looked they were heavily enshittifying and pushing a bunch of AI shit).