Introducing LabCraft: learn Nix where it breaks — LabCraft BlogGet early access →
BlogManifestoContactGet early access →
Nix does something almost no other tool does. It turns packages, development<br>environments, and builds into versioned code. NixOS carries the same idea all<br>the way to the machine: configuration, services, and system state described in<br>files, then rebuilt from that description. Once that clicks, it's hard to unsee.<br>Reproducibility stops being a slogan; every environment or machine you can't<br>rebuild from a file starts to look like technical debt.
The catch is getting there. The documentation is terse. The answers are<br>scattered across two decades of forum threads, blog posts, and tutorials, many<br>of them written before flakes. Almost every example assumes context you don't<br>have yet. The power is obvious from day one. The path from "I installed it" to<br>"I actually get this" is not.
LabCraft is a guided Nix lab environment built around that gap. You get a real<br>VM, work through chapters on the machine itself, and each step is checked<br>against what actually happened on the box. It is not a quiz. It is not an<br>emulator in a browser tab. It is a machine you can break, repair, rebuild, and<br>understand.
That means the course can teach the messy parts directly. A lab can ask you to<br>run nix, watch it fail because your shell is not loading the right profile,<br>fix the environment, and then prove the repair by checking the commands that<br>actually ran. You are not memorizing an answer. You are learning what a broken<br>Nix setup looks like from the inside.
I know why that matters, because I've walked that path. I met Nix in 2020, on a<br>team that used it as the backbone of every build. After years of Chef and<br>Ansible, the pitch clicked in about a minute. The learning curve took much<br>longer. Grit helped for sure. But what actually got me through was much rarer:<br>colleagues who had been at this for years, just a Slack message away. Every wall<br>I hit, they had hit before, and they didn't just hand me fixes. They looked at<br>my broken build and explained what the system was doing underneath, while all I<br>could see was the error. That's the difference between an answer and<br>understanding. I would not have gotten fluent without it.
Most people learning Nix don't have colleagues like that. Every organization<br>I've championed Nix at has followed the same pattern. People without a firm<br>footing in the shell bounce off the curve. So do some who have one. The ones who<br>persist get through the way I did: they lean on the few engineers who already<br>speak Nix. That works. It worked for me. But it puts the load on a handful of<br>people, and it spends the organization's most expensive hours on questions a<br>good learning path would have answered.
LabCraft is my attempt to build that colleague at the next desk, for everyone<br>learning Nix without one. The first course is for engineers who can work in a<br>terminal and edit files, but do not yet have the Nix mental model that makes its<br>errors legible.
Why Nix is hard, and worth it
Nix isn't hard by accident. It changes ideas you already have habits around.<br>Packages and configurations become immutable artifacts instead of files strewn<br>across the system. Builds become pure functions of their inputs instead of<br>scripts that mutate a machine. An environment becomes something you compose and<br>throw away instead of something you install and maintain.
That's why reading about it only gets you so far. You can follow every word of a<br>flakes explainer and still freeze the first time your own build dies with<br>infinite recursion encountered.
AI hasn't changed this. A model will write your flake in seconds, and it can<br>often patch a broken build. What it can't do is understand the system for you.<br>That judgment still comes from seeing failures, forming a<br>model, testing it, and knowing why the fix worked. That's the work LabCraft is<br>built around.
You learn Nix where it fails
Everyone who learns Nix hits the same walls. The install finishes and nix<br>still isn't on your PATH. The tutorial says nix run and your shell says<br>experimental feature 'nix-command' is disabled. Your build fails with an error<br>that seems to assume you already know the answer it's pointing at.
Most people hit these moments alone, at the worst possible time. Many walk away.
LabCraft puts those failures directly in the path. You meet them where they<br>naturally occur, with enough context to understand what the system is telling<br>you. Work through an error once in a place built for it, and it stops being a<br>wall. It starts being information.
What you actually get
You get a real machine: a VM with its own kernel, not an emulator in a browser<br>tab. Push it as far as you like. Nothing you care about is on the line. When you<br>finish a step, the check looks at the commands that actually ran on the machine<br>and how they exited, not a quiz answer. Each step builds on the one before it<br>instead of dropping you at a blank prompt.
The labs are held to a...