Nix 101 Course / Section 9: Flakes
Premium

9.1 What flakes are and why they exist

Lesson 59 of 68 · 11:28

placeholder thumbnail

Sign in, then buy this course to watch

Free account · no credit card needed

About this lesson

Nix flakes are the most argued about feature in the ecosystem, and this lesson opens the flakes section with the question forum threads never answer: what problem do flakes actually solve? You learn where evaluation caching, the flake registry, built-in pinning and the new nix CLI come from, and why flakes are still marked experimental years after their 2019 debut. This is the context that makes every flakes tutorial afterwards click.

In this video

  • The one thing Nix could never cache before flakes, and which features (NIX_PATH, builtins.currentSystem) had to be forbidden to get it
  • What replaced channels: the registry behind nix shell nixpkgs#nodejs
  • Mixing packages from two different nixpkgs revisions in a single command, something the old CLI could not do
  • Running a tool straight from a GitHub repository with nix run, no checkout needed
  • The RFC history: why flakes are still not enabled by default, told by someone who asked Eelco about it over lunch at NixCon

After this lesson

You know exactly what flakes add on top of plain Nix, what they take away, and why the community is split. Every design decision in the following lessons will make sense.