# Graphdom documentation

Graphdom learns a website task by watching experts do it, then gives you a spider that must pass its tests offline before it touches the real site.

<Tasks />

## How a task becomes a spider

An expert records the task. Graphdom rebuilds the site as an offline sandbox from the recording, builds a deterministic spider, and runs it against every recorded session. Only a spider that passes them all goes on to the real site. [How it works](/concepts/how-it-works/) walks through each stage.

1. **record**: An expert does the task in Chrome. `graphdom record <url>`
1. **archive**: Events, bodies and a causal graph, on disk. `graphdom studio`
1. **sandbox**: The site, served offline from the recording. `graphdom sandbox`
1. **build**: One spider, tested on every session. `graphdom build [root]`
1. **run**: The spider on the real site. `graphdom runtime run`

## Principles

- **No model at run time.** A model writes and repairs the spider. The spider runs without one and gives the same result for the same site and inputs.
- **Evidence first.** A spider, or a repair of one, ships only when it passes the tests derived from the recorded sessions.
- **Local first.** Recordings, sandboxes and spiders stay on your machine. Nothing reaches a model before it is redacted.
- **No runtime dependencies.** Graphdom is the Node.js standard library and Chrome, driven over the DevTools Protocol.
