§00 / ManifestBYOC · open source

Offload the expensive half of GitHub Actions onto Cloudflare.

FlareDispatch moves agentic code review, Playwright e2e, acceptance suites, sharded matrices and security scans off GitHub-hosted runners and onto Cloudflare — billed per vCPU-second in your own account. Trigger a run from a workflow step or a cron schedule, or install the GitHub App and let runs fire on every PR with zero Actions minutes.

§01 / Why it pays off

Heavy CI at the price of raw serverless compute.

01 / Cost

Pay per vCPU-second

Heavy compute bills at Cloudflare Container rates — per vCPU-second, scaled to zero between runs — instead of per GitHub Actions minute. The jobs that dominate a CI bill move to the cheapest place to run them.

02 / Headroom

No platform ceilings

No 6-hour job limit: each run declares its own wall-time ceiling. No 10 GB cache cap: the dependency cache lives in your R2 bucket. Artifact retention is yours to set.

03 / Fit

Install the App, or keep Actions

In webhook mode the GitHub App fires runs on every PR with no workflow file and zero Actions minutes. In Action mode a workflow step dispatches the run, for jobs that interleave with the rest of a pipeline. Either way the verdict lands as a check-run.

§02 / The bottleneck

Most of a code-review run is the model thinking, not your CPU working.

An agentic review is mostly LLM I/O: the run waits on the model while the vCPU idles. GitHub Actions bills that wait by the wall-clock minute. FlareDispatch bills container vCPU-seconds, and the model wait runs in a Workflow step that accrues no container time — so a run pays for its activeslivers, here about a fifth of it.

BILLED TIME · ONE CODE-REVIEW RUNread diffreview ①review ②synthesizeGitHubActions10 minFlareDispatchfreefreefreefree~2 minwall-clock time of one run →vCPU-active — billed by bothLLM I/O wait — GitHub Actions only
A code-review run is roughly 20% vCPU-active and 80% LLM I/O wait. GitHub Actions bills the entire wall-clock run; FlareDispatch bills only the vCPU-active fraction, because the model-wait runs in a CPU-time-billed Workflow step.
§03 / Positioning

Every other option gives up one of three things.

Hosted runners are easy but bill per minute under hard ceilings. Self-hosted and hybrid runners lift the ceilings and hand you a fleet to operate. FlareDispatch runs on serverless Cloudflare primitives in an account you already own.

Heavy-CI optionServerless, scale-to-zero computeNo 6 h / 10 GB ceilingsNo runner fleet to operate
GHA hosted runners——✓
Self-hosted runners—✓—
Buildkite Agent (hybrid)—✓—
FlareDispatch✓✓✓
§04 / The code

One step to dispatch. One program to run.

Dispatch a registered run from a workflow step; the verdict arrives as the flare-dispatch/offload-test check-run.Docs →
# .github/workflows/ci.yml — Action mode
- uses: fractalboxdev/flare-dispatch/actions/flare-dispatch-action@<sha>
with:
run: offload-test
endpoint: ${{ vars.FLAREDISPATCH_ENDPOINT }}
hmac-secret: ${{ secrets.FLAREDISPATCH_HMAC }}
inputs: |
{ "repo": "${{ github.repository }}", "sha": "${{ github.sha }}", "command": "pnpm test" }
§05 / Platform

More than runs: the platform underneath.

05.01 / Agentic review

Review runs that read the whole diff

pr-review fans a diff out to per-domain reviewers, or one generalist, and posts a single verdict with a severity table and per-finding blob links.

05.02 / Writeback

Propose the fix back as a PR

self-heal-pr runs a coding agent in a credential-free sandbox and opens a draft PR only when the repro goes green; spec-drift-pr and improve-pr file their proposals the same way. The Worker holds the App key, never the agent.

05.03 / Model routing

Provider-agnostic model gateway

Model calls route to Workers AI, Anthropic or Bedrock, chosen per run from KV config with no redeploy. Bedrock signs with SigV4, with no long-lived AWS keys in the Worker.

05.04 / Admission control

Bursts queue instead of failing

A FIFO admission gate caps in-flight runs at the pool size, and the check-run shows the queue position while a run waits. Runs that must not overlap declare a serial group.

05.05 / Session replay

Scrub the walkthrough inline

product-demo drives a deployed app over CDP with session recording; reviewers replay it in an rrweb player linked from the check-run and the result email.

05.06 / Observability signals

Bring your own APM

ci-triage-pr reads the vendor-neutral signals/v1 shape from a small adapter on your side — Datadog, SigNoz, HyperDX or your own — so no observability key sits in the Dispatcher.

§06 / Design philosophy

Three bets the design rests on.

  1. §06.01

    Progressive offloading.

    Move CI one job at a time, heaviest first. GitHub Actions keeps the cheap jobs and the PR gate; nothing is all-or-nothing.

  2. §06.02

    Runs are typed programs, not YAML.

    A run is an Effect-TS program: Schema-typed inputs and outputs, durable steps, tagged errors, exhaustive matching. Fork it, edit it, unit-test it without booting a container.

  3. §06.03

    BYOC by construction.

    Each organization deploys its own Dispatcher and GitHub App into its own Cloudflare account. There is no multi-tenant operator and no hosted service to trust.

§07 / Start

One Dispatcher per org, in your own Cloudflare account.