I’ve written an overview of the most common(and some of the less common) components of a flake.nix
file here.
There’s quite a lot of details about flakes’ inputs and outputs and how they all work together. There’s also some common code patterns that one might encounter when using flakes but ones that I haven’t seen in detail.
While the guide does require some initial knowledge of nix and flakes, I tried to make the sections as non-convoluted and self-contained as possible.
Feedback is very much welcome!