Dune is a build system for OCaml projects. But what is a build system? "It rebuilds just the necessary parts" is a good start, but it can be useful to understand the underlying model and write dune files that are performant and simple. The building block of Dune is the rule: a rule reads dependencies and writes targets using an action (and it can be attached to aliases). In this talk, I will walk the audience through how "dune build" operates. I will explain the concepts of rules, dependencies, targets, actions, and aliases. Then we'll see how dune files are interpreted to determine the rules that apply to the project. And finally, how Dune determines how to build the required targets.