open source · self-hosted · yours

Test management that
does less, on purpose.

Open-source, self-hosted test management, focused on what QA teams do every day: write the scenarios, run them, and see where you stand. Not much else, and that’s the point.

$ docker compose up localhost:3000

I kept paying for tools we barely used.

For years, every team I joined bought the same kind of thing: a big test-management suite, enterprise pricing, a long onboarding. And every time, we settled into a small slice of it. Write cases, run them, log defects.

The rest mostly sat there. The open-source options didn’t fit either — capable, but heavy and awkward to live in. So I built something smaller, around the slice we actually used.

a big license · a long onboarding · a fraction actually used

Built different. On purpose.

Most QA suites are built for enterprises with quarterly releases. Velo is built for teams that ship weekly, and runs on your own machine.

Velo
The usual suite
Hosting
Your server, your data
Their cloud
Cost
Free, self-hosted
Per-seat, per-month
Source
Open, MIT-licensed
Proprietary
Setup
One command, minutes
Onboarding, days to weeks
Test authoring
Keyboard-first; steps or GWT
Form-driven
Run tracking
Live (SSE)
Refresh or export
CI results
Built in
Paid add-on
Integrations
A focused few, done well
A large marketplace
Leaving
Export from Postgres, anytime
Vendor-dependent

The essentials, done properly.

// capture

Write cases fast

A keyboard-first editor. Steps or Given-When-Then, set per project. Tab, type, done. No mouse required.

// run

Run them live

Execution updates over SSE, not polling. Pass, fail, or block with one key. Attach a screenshot, file the Linear defect, and the evidence rides along.

// see

Know where you stand

Pass rates and trends the moment someone records a verdict. No status meeting to find out.

// connect

Bring your own AI

Paste a Linear issue; your key turns the acceptance criteria into cases. Claude, OpenAI, or a local model. JUnit and Allure ingest from any CI.

Checkout suite · 24 cases
Guest can complete checkout with a saved cardCritical
Given an empty cart · When a coupon is applied · Then it is rejectedHigh
Order confirmation email fires within 30 secondsMedium

// self-host

Runs on your machine.
Your data stays yours.

  • 01One Docker command. Prebuilt images, amd64 or arm64 — runs on a NAS too.
  • 02Evidence storage built in. Screenshots and CI payloads land in a bundled store — no cloud bucket to wire up.
  • 03Your own AI keys — Claude, OpenAI, or a model on your LAN.
  • 04Analytics, error tracking, email: off until you switch them on. Nothing phones home.
  • 05Free. MIT-licensed. Fork it if you want.
# clone, set three secrets, up
git clone github.com/code-by-gunnar/velo-test-management
cp .env.example .env
docker compose \
  -f docker-compose.yml \
  -f docker-compose.app.yml up -d

 web   localhost:3000
 api   localhost:3001

See if it fits.

Clone it, run it, and find out in about five minutes.