Skip to content

Beginner Roadmap

First-pass reading order for someone new to Nix and NixOS. Skim each linked page; skip deep dives until a later pass. This page is a curated path only — no runnable example.

Goals

  • Understand why Nix exists (purity, declarativeness, rollbacks)
  • Learn the core vocabulary: derivation, store path, closure, generation
  • Read enough Nix language to follow configs, not write packages yet
  • Install and configure a basic NixOS system, then meet flakes and keep cheatsheets handy

Prerequisites

  • Comfortable with a Linux shell and editing text files
  • Willing to install NixOS in a VM or spare machine (recommended), or follow along conceptually
  • No prior functional programming required
  • Skim Reading manuals and search once — how this wiki relates to upstream manuals and search.nixos.org

Reading order

1. Philosophy

Start with the design goals so later mechanics make sense.

  1. Philosophy overview
  2. Why Nix
  3. Purity and reproducibility
  4. Declarative vs imperative
  5. Immutability and rollback

Optional: hermetic builds, tradeoffs.

2. Concepts

Build the mental model before touching installers or flakes.

  1. Concepts overview
  2. Derivation
  3. Store path
  4. Closure
  5. Generation and profile
  6. Skim channel and flake (concept) — deep dive later

3. Language (light pass)

Enough syntax to read configuration.nix and simple expressions.

  1. Language overview
  2. Literals
  3. Strings and interpolation
  4. Lists and attrsets
  5. Functions
  6. let-in and with

Skip builtins, idioms, and packaging patterns for now. Use the language cheatsheet while reading.

4. Store basics

How builds land on disk and why GC and caches matter.

  1. Store and build overview
  2. Nix store layout
  3. Builders and sandboxes
  4. Skim binary caches and garbage collection

5. NixOS install and config

Installation and a minimal system config — not a full ops tour.

  1. NixOS overview
  2. Installation overview — prefer graphical installer; manual install if needed. Stuck choosing a path? Install and bootstrap
  3. Optional context: dual boot and VMs if you are installing beside another OS or practicing in a hypervisor guest
  4. configuration.nix
  5. hardware-configuration
  6. Module system and generations and boot
  7. rebuild: switch, boot, test and rollbacks

Optional (desktop install): NixOS Desktop — compositors, PipeWire, fonts, Flatpak; defer gaming and printing until needed.

Defer services, custom modules, virtualization hosts, and remote deploy until you have a working system.

6. Flakes intro

After channels/concepts click, learn the flake surface.

  1. Flakes overview
  2. flake.nix schema
  3. Inputs and outputs
  4. Lockfile
  5. Optional: NixOS configurations workflow
  6. Optional: Config repo layouthosts/ / modules/ / users/ mono-repo shape
  7. Optional skim: import from derivation — why flake checks sometimes trigger builds during eval

7. Cheatsheets

Keep these open while practicing:

8. Picture-perfect configs (optional)

After a first flake/NixOS pass, walk a composed example:

  1. Minimal flake NixOS host
  2. Optional: NixOS with Home Manager or Project devShell and direnv
  3. Index: Configuration examples

Next steps

See also