validation-first deployment

Deploys at the speed agents iterate.

Verified running forks in seconds - for developers and AI agents shipping to a machine they own. Fork the running app, verify in isolation, flip traffic. Rollback is a pointer, not a pipeline.

our fastest real push, end to end - your build and boot time set the floor 0 ms
snapshot 179ms patch 43ms boot 743ms verify 13ms

the loop - try it

Run a deploy right here. Then break one.

simulated daemon - timings replayed from the real benchmark live: v7
# press a button - each run replays a real push at real speed

stop burning compute

An agent iterating 100 times a day:

13.7 h

of CI runner compute, classical pipeline (median 8m 13s per deploy)

3.3 min

of hotlane machinery (~2s per verified deploy)

~250×

less compute for the same shipped code - measured, not promised

Extrapolated from measured medians on two paths that are not the same app - read it as "orders of magnitude", not a precise multiple.

how it works

The running app is the deploy unit - not a cold-built image.

1

fork

Snapshot the running app; apply your delta to the copy - warm caches included.

2

verify

The fork must pass your hooks. Unverified code never receives traffic.

3

flip

Promotion is a pointer swap. The old version parks for sub-second rollback.

the archivist

Fast because it reuses. Trustworthy because it never stops checking.

After every promote, hotlane rebuilds your app from source, in the background, pushes it to your registry, and periodically diffs its behavior against live:

$ hotlane drift
DRIFTED: behavior differs on /: clean build serves "hello", live serves "TAMPERED"
next push will rebuild from hotlane-api:clean

Drift pings your webhook; the next push rebuilds from the clean image. Fast lane and audit trail, both real.

measured, not promised

Benchmarked against a real production pipeline.

pathpush to verified live (median)rollback
hotlane - TypeScript / Express1.72s0.64s
hotlane - FastAPI1.18s0.65s
for reference: a real GitHub Actions pipeline (15 runs)8m 13sre-run the pipeline

Real build steps (tsc, pip), 10 runs each. Your build and boot time are the floor; the machinery adds well under half a second.

That last row is not like-for-like: it is a real pipeline deploying a bigger system, and these small apps would run faster through a fresh one. The structural claim is the honest one - a pipeline pays runner queue, checkout and toolchain setup (60-120s) before it builds anything, then an image build, a registry round-trip and a scheduler deploy. hotlane skips that by mutating a machine already running your app. Method, per-run data and caveats.

under fire

398 deploys under constant load. Zero dropped requests.

Six concurrent agents pushed, held test forks and promoted against one daemon for 25 minutes - a verified deploy every 3.8 seconds - while a steady 100 req/s hit the app. On a 2-vCPU VPS.

0

requests dropped or errored - of 150,001 served across 398 traffic flips, every one an HTTP 200

398

promotes under that load, plus 92 held-fork test flows - each fork served exactly its own code, every time

6.2 ms

median response time while deploying nonstop (p90: 13.7 ms)

The honest tail: ~1% of requests stalled 1-2s (p99 1.0s) while docker commit snapshots the live container at each push - delayed, never dropped. Harness, method and raw numbers.

built for agents

The whole loop, about a second per turn.

install

One binary. It is the daemon and the CLI.

curl -fsSL https://hotlane.dev/install.sh | sh
# or: brew install StefanIancu/hotlane/hotlane  |  npm i -g hotlane  |  pip install hotlane

cd your-app
hotlane init                  # detects Node / Python / Go, writes hotlane.yml
hotlane serve                 # boots the warm pool, proxies traffic
hotlane push                  # ~1s later: verified and live

Anywhere Docker runs. One binary, one config file, no YAML zoo.