What are nix flakes and why should I care?

In my mind, flakes are essentially a better replacement for channels where the pinning of input revisions are made explicit rather than based on the whims of a nix-channel --update. I mean, there’s a lot more too it than that, but that’s probably the most important piece.

In other words, it allows for your entire nix expression to be reproducible, right down to the revision of nixpkgs. Previously, users could still get different output based on their specific nixpkgs in the NIX_PATH.

With that said, after using them for about 2 years now there are certainly areas for improvement.

2 Likes