Your launch‑day traffic,
before launch day.

Describe your users. Stampede becomes a thousand of them, and shows you exactly where your product breaks.

HTTP/1.1HTTP/2GraphQLWebSocketSSEgRPCBrowserMQTT · Kafka · Redis · SQL · UDP
LIVE ON A LAPTOP

Find the breaking point. Fix it. Prove it.

ShopLab ships with Stampede: a small shop API with six performance problems planted on purpose. This is real output from one laptop, the same breakpoint scenario before and after turning the fixes on.

before: every bottleneck active
$ stampede run breakpoint.yaml
  requests     17302  failed 0 (0.00%)
  latency      p50 9.51ms  p95 28.6s✗ http.p95 < 250ms        observed 28.57s

  breakpoint   targets held up to 483/s,
               failed at 700/s
  knee         p95 latency rose sharply
after: SHOPLAB_FIX_ALL=1
$ stampede run breakpoint.yaml
  requests     97220  failed 0 (0.00%)
  latency      p50 1.70ms  p95 60.5ms✓ http.p95 < 250ms        observed 60.5ms

  breakpoint   targets held up to 1567/s,
               failed at 1783/s

Reproduce this on your machine → About ten minutes with Docker; your numbers will differ with your hardware.

stampede init works out what kind of app it is pointed at and checks every journey once; stampede run then puts it under load and checks the targets.
The Stampede console: the teal block-art bull, a welcome naming the signed-in user, server and project, and suggested first commands
stampede opens a console that stays open until you leave: every command as /command, plain language, saved sessions.
A plain-language request turned into a command for confirmation, then a live run at 623 requests per second with 1,210 virtual users and live throughput and p95 sparklines
Ask in plain words, confirm, and watch the run live.
stampede run with 1,000 virtual users through four SaaS journeys: PASS, every target met, and per-step latency
1,000 users through four journeys: targets checked, every step timed.
A run's report in the web UI: FAIL with the missed targets, summary figures and exports
Every run's report in the web UI, with HTML, PDF, CSV, JSON, JUnit and Markdown exports.
A live run in the web UI with its dry run, worker health showing one saturated worker, and the stop and kill controls
Live runs with worker health; a saturated worker is called out, not hidden.
The self-contained HTML report of a baseline run: PASS, summary, targets and throughput and users over time
A self-contained HTML report from stampede run -o report.html.
A project overview in the web UI listing recent runs with their verdicts, p95, errors and throughput
Each project's runs, verdicts and trends at a glance.
Throughput against load: completed iterations per second and p95 latency per load level, with the last level that scaled and the knee marked
Throughput against load: where your system stops keeping up, marked.
8.4%

more retail conversions from a mobile site just 0.1 seconds faster.

Source: Deloitte for Google, “Milliseconds Make Millions”, 2020
7%

lower conversion rates from a 100-millisecond delay in page load.

Source: Akamai, State of Online Retail Performance, Spring 2017
$300,000+

what one hour of downtime costs over 90% of mid-size and large enterprises.

Source: ITIC 2024 Hourly Cost of Downtime Survey
01

The problem

Load generators are good at sending traffic. The hard parts are everything around it: writing journeys that actually work, and trusting the numbers that come back.

The hard partWhat Stampede does
Writing journeys that workWeighted journeys in YAML, from a ready-made product pack, or drafted with AI (optional) from a description, an OpenAPI spec or recorded traffic
Finding a broken login mid-testEvery journey is dry-run with one user before it joins a load test
Queueing hidden in the numbersLatency counted from when each request was scheduled to leave, as wrk2 also does (measured nightly)
Percentiles across many machinesEach worker's histograms are merged, never averaged
An overloaded load generatorWorkers report their own saturation, and the verdict says generator-limited instead of blaming your app
Graphs to interpretThe breakpoint, the knee, and pass or fail against your targets
02

Describe. Validate. Stampede.

DESCRIBE

Journeys, not requests

Write how users behave, point at an API spec, or let AI draft it. Weighted journeys, data feeders, checks and extractors in one YAML file.

VALIDATE

One user first

Every journey runs once against your target. Broken ones are repaired or flagged before any load is sent.

STAMPEDE

Then thousands

Open or closed load models, nine traffic shapes, across as many workers as you run. Reports say where it broke and why.

How it works →

03

Your machines. Your data.

Self-hosted and open source. Nothing leaves your network unless you point an AI provider at it, and even then recorded traffic is redacted first.

YOU

CLI, web UI, CI

One binary. stampede run needs nothing else.

→
SERVER

stampede server

API, run manager, reports. PostgreSQL / TimescaleDB.

→
WORKERS

stampede worker × N

Connect out over gRPC from any region, start in sync, merge exactly.

→
TARGET

A system you own

Private hosts just work. Public ones need ownership proof to go beyond low caps.

04

Mission control

Watch a run live in the web UI or the terminal, with the kill switch always one click away.

  • Live throughput, latency percentiles, errors and users per second
  • Worker health, saturation and loss marked as they happen
  • Stop gracefully or kill instantly; a worker that loses the server stops by itself
  • Reports in HTML, PDF, CSV, JSON, JUnit and Markdown
stampede · ShopLab shop mix, 30 s
$ stampede run shop-mix.yaml --duration 30s
  PASS  shoplab-mix  (constant-rate, 38s, stop: completed)

  requests     2721  (71.4/s)   failed 0 (0.00%)
  iterations   1500  failed 0  dropped 0
  latency      p50 2.97ms  p95 10.6ms  p99 22.9ms

  ✓ http.p95 < 300ms              observed 10.6ms
  ✓ errors < 1%                    observed 0.00%
  ✓ order-history.p95 < 800ms     observed 6.0ms
  ✓ checkout.p95 < 1s             observed 5.9ms
05

Get started

One line installs the CLI. A second starts the full stack with the web UI.

the CLI · Linux, macOS
$ curl -fsSL https://raw.githubusercontent.com/Ivan825/Stampede/main/install.sh | sh
$ stampede init --target http://localhost:3000
# detects your product type, installs a pack, dry-runs every journey
the CLI · Windows PowerShell
$ irm https://raw.githubusercontent.com/Ivan825/Stampede/main/install.ps1 | iex
the CLI · Homebrew, Scoop
$ brew install ivan825/tap/stampede
# Windows:> scoop bucket add ivan825 https://github.com/Ivan825/scoop-bucket
> scoop install stampede
the full stack · Docker
$ stampede up
# web UI on localhost:8080 · two workers · TimescaleDB# or, with the ShopLab demo: git clone the repo, then docker compose up -d --build
CommandDoes
stampede init --target URLDetects the product type, installs the matching pack, dry-runs it
stampede run file.yamlRuns a scenario with no server; exit 3 when a target fails
stampede generate --from-openapi spec.yamlDrafts journeys with AI and proves each one works
stampede compare --a ... --b ...Judges two versions with confidence intervals; exit 4 on regression
stampedeOpens the terminal console: /run spike, /kill all, plain language

Read the quick start →

Run it locally ↗
06

Every test type, one engine

/run smoke

Do the journeys work at all?

/run baseline

How does it behave at normal traffic?

/run stress

What happens past the expected peak?

/run spike

Does it survive a sudden jump?

/run soak

Do leaks show up over hours?

/run breakpoint

At what load does it fail?

/run steps

What does each extra increment cost?

/run recovery

How fast does it recover from overload?

/run wave

Does it cope with repeated peaks?

All test types →

07

Journeys at scale

Weighted mix Shipped

Browse 60%, search 20%, checkout 5%, with branches such as abandoned carts.

Dry-run validation Shipped

Every journey proven with one user, by hand or by the AI pipeline.

Product packs Shipped

Ready-made journeys, stresses and targets, detected by stampede init.

Endpoint coverage map Shipped

Which endpoints in your spec no journey touches, with stampede coverage.

Drift detection Shipped

stampede drift flags journeys an API change broke, by spec diff and dry run.

The herd is ready.

Clone it, run it, find out where your product breaks before your users do.

Run it locally ↗