Build pipelines Launching soon

Anvil

A build server small enough to understand, honest enough to trust.

Anvil runs every build we ship, including this site. Pipelines are declared in the repository, each build gets its own workspace and streams its logs live, and the machines that execute them exist only while there is a queue.

Why not just use the hosted one

Hosted CI bills by the minute for machines that idle, hides why a build is queued, and turns a pipeline into a proprietary dialect of YAML nobody can run locally. Self-hosted alternatives solve the billing and hand you a Java application, a plugin ecosystem and a maintenance job we never asked for.

Anvil is one small binary: the queue, the pipeline, the logs and the workers, with nothing between a commit and the shell command it triggers.

What it does

Pipelines live in the repository

A pipeline is a short file next to the code, describing stages and what depends on what. Reviewing a build change is reviewing a diff, and any stage is just a command you can also run yourself.

Builds you can watch

Logs and stage progress stream as they happen, to every open client at once. Reattaching mid-build shows what has already run and then follows live.

Capacity that is not sitting idle

Build machines are started for a waiting queue and go away when it drains. Nothing is billed to keep an executor warm for the commits nobody pushed today.

Workers wherever the work belongs

Executors attach over the network from anywhere — a spare machine, a cloud job, a box next to the hardware being tested — and take work from the same queue.

Isolated, reusable workspaces

Each job owns its workspace, cleaned to the degree the job asks for, so caches survive between builds when that is wanted and nothing leaks between jobs when it is not.

Queues that behave predictably

Builds are recorded before they run and one build per job runs at a time, so a burst of pushes produces a queue with a known order rather than a race.

Survives its own restart

Every build is persisted as it goes. Restarting the server mid-flight resolves interrupted builds instead of leaving them spinning forever.

How we build it

  • A pipeline that cannot be read in a minute will not be trusted in an incident.
  • A build is either finished, running, or explained — never quietly stuck.
  • The build server is infrastructure, not an application to administer.

Anvil is preparing for commercial launch. It runs our own delivery today, including this site; account opening and pricing are not live yet.