> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ovalbee.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ovalbee.com/_mcp/server.

# Core ideas

If you've used Airflow, n8n or a notebook-based pipeline, some of OvalBee will feel familiar and some of it will not. This page is the short version of what's different. Each section links to the concept page with the details.

## 1. A flow is a process, not a script

A **flow** is a graph of nodes on a canvas. It describes how work moves through your team: images arrive, get labeled, get reviewed, feed a training run, get scored.

What a flow is *not* is a one-shot program you press "Run" on. There's no button that executes the whole graph from start to finish. Instead, each node runs on its own terms:

* you run it from the canvas,
* a node upstream of it finishes and passes the turn along,
* its schedule comes due, or
* a person finishes a batch in the annotation tool and the work moves on.

Loops are allowed and common. Rejected annotations go back to the labeling pool, a new model version triggers another evaluation, hard examples go back into training. A flow keeps working for weeks, and the canvas always shows its current state.

[Flows](/concepts/flows) · [Runs and automation](/concepts/runs)

## 2. Nodes do the work

A **node** is one step: import images, split a dataset, train a detector, compare two models, open a labeling queue. You place nodes from the [Node Library](/node-library/nodes/overview), fill in their inputs in the sidebar and run them.

Most nodes run as containers on the platform's compute, and training or inference nodes get a GPU automatically. Every run is recorded with its inputs, outputs, logs and artifacts, so you can always see what a node did last Tuesday and why it failed.

[Nodes](/concepts/nodes)

## 3. Edges say *when*, references say *what*

This is the idea people coming from other tools miss most often.

An **edge** between two nodes means "run this one after that one succeeds". It carries no data.

Data reaches a node through its **inputs**. An input either holds a value you typed or picked, or it **references** an output of another node — for example, "the dataset produced by the Train/val split node". When the node runs, OvalBee resolves the reference to that node's latest output.

```mermaid
flowchart LR
  split["Train/val split"] --> train["Train detector"] --> eval["Evaluate"]
  split -. "references the val dataset" .-> eval
```

Keeping the two apart is what makes loops, branches and shared datasets manageable: `Evaluate` can use the validation split without being wired next to it, and a single output can feed ten nodes without ten arrows. Edges can also be purely **visual**, for drawing a loop that should never trigger anything.

[Edges](/concepts/edges) · [References](/concepts/references)

## 4. Data lives in versioned datasets

Images, videos, annotations, models and reports are **assets**. A **dataset** is a named set of assets, and it has **versions**. When a node writes a result into a dataset it created, a rerun adds a new version instead of overwriting the old one, so earlier results stay available.

A node input can follow a dataset's **latest** version or be pinned to one exact version. Class names and tags come from an **ontology**, a versioned vocabulary that datasets and models are pinned to.

[Datasets and versions](/concepts/datasets) · [Assets and annotations](/concepts/assets) · [Ontologies](/concepts/ontologies)

## 5. People work inside the flow

Labeling and review are nodes too. A **Labeling** node takes images from a pool dataset and hands them to labelers in batches. The buttons labelers press in the annotation tool — *To review*, *Skip*, *Needs expert* — are datasets you connected, so every decision moves the image to the next stage of the graph. Reviewers, experts and automated quality checks are more nodes in the same chain.

Domain experts don't need to touch the graph at all: they open **Labeling** in the sidebar, see their tasks and start working.

[Labeling](/concepts/labeling)

## 6. Every result is traceable

Trained models land in the **model registry** with their metrics, class list, training dataset and training report. Evaluation nodes attach their results to the model version they scored. Reports open right from the node that produced them. The **Activity** page lists every run across the workspace, and on Pro and Business plans each flow keeps a version history you can restore.

[Models and deployments](/concepts/models) · [Reports](/concepts/reports)

## Where things live in the app

| Sidebar item   | What you do there                                                                                                                                   |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Home**       | Open and create flows: from a template, from scratch, from a file, or with your own agent. See your labeling tasks.                                 |
| **Labeling**   | Every Labeling and Review node you're assigned to, with a button to open the annotation tool.                                                       |
| **Activity**   | All node runs in the workspace: status, duration, logs and failures.                                                                                |
| **Models**     | The model registry, the pretrained catalog, benchmarks and running deployments.                                                                     |
| **Ontologies** | Class and tag vocabularies and their versions.                                                                                                      |
| **Storage**    | Datasets and assets, with sizes and versions.                                                                                                       |
| **Settings**   | Workspace members, secrets, API tokens and billing.                                                                                                 |
| **Audit log**  | Who signed in, changed access, or created or deleted what in the workspace. OvalBee Cloud only, for the workspace owner on a plan that includes it. |
| **Admin**      | Platform configuration and the audit log. Instance administrators only.                                                                             |

Ready to try it? The [Quickstart](/start/quickstart) takes about ten minutes.