Skip to content

cellpFork the Worker and the data

Private Workers control plane on your hardware — not a Cloudflare account. Each child version copy-on-write branches D1, KV, R2, and Queues instead of sharing production data.

Worker + D1 + KV + R2 + Queue · versioned together · celld runs it · cellp orchestrates it

Position

cellp is a self-hosted Workers control plane: CI posts a version, you get a preview Host; the first ready version becomes production, and you promote for later cutovers on your hardware. celld is the runtime (Workers APIs, bindings)—vendored and extended in the cellp repository for private deploy (D1/KV/R2/Queue branch, per-version buckets). cellp does not re-implement the isolate; it runs one celld per ready version and forks data with offshoot.

This is not self-hosted Cloudflare: no account, no Anycast edge, no built-in DNS/TLS/CDN. You keep Git, CI, and your load balancer. Why cellp · Compare · From Cloudflare

cellp + celld

PieceRole
celldExecute fetch, D1, KV, R2, Queues, Workflows, Cron from your wrangler bundle
cellpRegistry, Gateway (Host ingress), promote saga, D1/KV/R2/Queue branch orchestration
offshootCopy-on-write data fork between parent and child versions
RustFSPrivate S3 for artifacts and per-version storage

What is cellp · How it works · Coding Agent on cellp

What branches with the version

Branch. A child version is not a new empty environment that still talks to prod. You pass parent_version_id. cellp keeps the Worker script from this deploy, and forks every data binding from the parent:

this artifact

Worker

New isolate, new URL. The script is from this wrangler bundle — not a diff of the parent Worker.

branches

D1

celld d1 branch. Child bucket stores base.json + LTX. Preview SQL writes stay in the preview.

branches

KV

Namespace fork. Large values chain to the parent blob store. Preview puts do not mutate prod keys.

branches

R2

Prefix overlay and tombstones. Preview objects and deletes are local to the version.

branches

Queue

The queue name in wrangler is the same; the data is a branch. Messages enqueued here never drain in prod.

Workflow instances and Cron are not branched — they start from this artifact. That is intentional. Bindings · Preview · Data fork

The idea in one sentence

cellp is the control plane that versions the Worker and its D1, KV, R2, and Queues together, then gives you a preview URL; the first ready version serves production, and later changes use promote.

01Install (`curl | sh`) and run `cellp dev`, or upload a wrangler bundle to RustFS in CI
02POST /versions with parent_version_id — Worker from this artifact, D1 / KV / R2 / Queue branched from the parent
03Each version gets its own celld process and preview Host URL
04You hit the preview until you are satisfied. Writes stay in that version.
05First ready on a new project becomes prod automatically; POST …/promote switches prod for later versions. Rollback is promote the previous one.

Who this is for

Teams leaving Cloudflare

You want Worker + D1 + KV + R2 + Queue on hardware you own, with previews that actually fork the data.

Platform / infra companies

You already run Git, CI, and a load balancer. You need a Workers control plane with binding-aware branches — not another PaaS.

YC and technical buyers

The wedge is branch: App + Data versioning for private Workers. Clear non-goals. Runnable in minutes on a laptop.

Also true (less exciting, still required)

  • Self-hosted. curl | sh then cellp dev on a laptop. Docker Compose + RustFS on a VM. No Cloudflare account, no AWS S3.
  • Promote is explicit after bootstrap. The first ready version becomes prod; later production is not “whatever main built last” without promote.
  • Honest boundary. No Git hosting, user accounts, DNS, CDN, or TLS. Your CI pushes versions. Your load balancer terminates HTTPS.
  • Dashboard. Projects, versions, D1 browser, KV, queues — same REST API as CI.

Start in three commands

bash
curl -fsSL https://raw.githubusercontent.com/KonghaYao/cellp/main/scripts/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"
cellp dev

If the current directory has wrangler.jsonc, it is deployed as version dev. Otherwise the platform is up and you can write a Worker.

Install · cellp dev · Quick start

Self-hosted Workers control plane. Not affiliated with Cloudflare or Vercel.