The Brewhouse

Five ways to brew the same pint

Every NixOS config ends up describing a computer. What changes is how the recipe is organised: one file, a pinned flake, or a whole brewery of modules. Here’s each method, simplest first, with the same order poured every way.

Before you read on

You don’t need any of this on day one. Start with the house pour, which is the configuration.nix the installer gives you, and come back when you’ve got more than one machine, or when your one file starts to feel crowded.

One example, five ways

Each page below turns on Steam, so you can compare the methods on the same job. The Steam line is identical every time. What differs is the structure around it, and how well that structure copes as you add machines and users.

The ladder, simplest first

  1. The house pour Vanilla configuration.nix One file in /etc/nixos, exactly what the installer gives you.
  2. Bottle-conditioned Flakes Your config plus a lock file that pins every input. Same pint, every time.
  3. The recipe book flake-parts Splits a flake into separate modules, so a growing config stays tidy.
  4. Grown, not built The dendritic pattern Organise by feature, not by machine: every file is a module, and they're all loaded automatically.
  5. The full brewery den A framework for NixOS, nix-darwin and Home Manager together, organised into reusable "aspects".

The tasting board

Five ways to brew the same pint, side by side.

MethodGood first brew?Needs flakes?Several machinesLearning curve
Vanilla configuration.nixYes, start hereNoOne at a timeGentle
FlakesYes, with a guideYesYes, by handGentle
flake-partsOnce you know flakesYesYes, tidilyModerate
The dendritic patternNot yetUsually (not required)Built for itSteep
denNot yetNo (optional)Built for it, Macs tooSteep

Which brew?

Pick the one that sounds most like you.

Stick with the house pour.

The configuration.nix the installer made is all you need for now. Learn to add apps, rebuild and roll back first.

Read about the house pour
  • Nothing new to learn beyond your config file
  • Every guide’s examples still work for you
  • Moving to flakes later is a small step