nixfredFLOXFIELD GUIDE · BY NIX UNOFFICIAL
WHITEBOARD / WHITEBOARD FIELDCRAFT

Whiteboard fieldcraft

The board is what you are delivering. Each of the four boards in this guide can be drawn in under five minutes, and each ends with one rule written at the bottom that the customer can take away.

This page is drawn from https://flox.dev/docs/concepts/environments, https://flox.dev/docs/tutorials/sharing-environments, https://flox.dev/docs/concepts/flox-vs-containers and https://flox.dev/docs/man/flox-activate.

Ask, draw, validate

  1. Ask three questions before you pick up a marker. What runs today, and where: laptops, CI runners, containers, clusters? Who builds and who runs it? What happens to the business when two machines disagree about a version? That last one is the Flox pitch in one line: Flox sells packaging that is “distinct from the chosen type of isolation” (https://flox.dev/docs/concepts/flox-vs-containers).
  2. Draw from the left. The manifest and lock file sit at the left, because an environment is “a shell that provides a collection of environment variables, software packages, and activation scripts” and everything else consumes it (https://flox.dev/docs/concepts/environments). Laptop, CI and cluster go on the right, arrows flowing out of the .flox folder.
  3. Say what you are drawing as you draw it. Every box gets one spoken sentence. The Say: lines on each board are written for that.
  4. Validate at every step. After each big arrow, ask “Is that right for you?” and fix the board on the spot.
  5. Write the rule at the bottom, for example the manifest travels, the machine does not matter (https://flox.dev/docs/tutorials/sharing-environments).

Shared shapes and colors

ShapeMeans
FolderA .flox directory holding manifest.toml and manifest.lock (https://flox.dev/docs/concepts/environments)
Rounded rectangleFloxHub, where a pushed environment is versioned in generations (https://flox.dev/docs/concepts/generations)
SquareA place that runs flox activate: laptop, CI job, container, agent sandbox
CylinderA service the environment starts, or external data
Green arrowflox activate, or flox pull / flox push
Red arrowDrift: a machine whose packages differ from the lock file

The four boards

Sources for the boards

Every claim on these boards links to a Flox docs page, a Flox blog post or a live flox.dev page, listed in the text. When you are not sure, stop drawing and open the page: https://flox.dev/docs/concepts/environments.

The four boards

← The company and the Nix world · Board: new hire to first commit →