Skip to content

Supported stacks

Runtime: celld (Cloudflare Workers semantics on your hardware). cellp documents tier 1 stacks as first-class; other CF framework guides may work when you ship a single Worker + assets bundle built in CI.

Status legend: Works — validated on cellp · Experimental — lab fixtures only, not a hosting promise · Not a goal — use another platform

Tier 1 (first-class)

Aligned with Cloudflare Workers framework guides. cellp documents, recommends, and runs a dedicated validation track for these when they deploy as one Worker per version:

FrameworkTypical artifactNotes
React + Vite SPAdist + thin WorkerDefault recommendation for new apps
Vue + Vite SPAsamesame pattern
Astro@astrojs/cloudflare single Workerstatic or adapter single deploy
SvelteKitadapter-cloudflare single Workernot multi-services consoles
Remix@remix-run/cloudflare bundlesingle bundle per version
NuxtNitro cloudflare presetsingle Worker

Deploy pattern: build in CI → upload artifact → POST /versions. Prefer pre-built worker + assets; avoid relying on celld to re-bundle Tailwind, .md, or full SSR graphs inside the Worker.

Details: Framework tiers (detail).

Also works (not tier 1)

Cloudflare documents additional stacks. cellp does not treat these as product defaults, but community validation has passed for single-Worker artifacts:

FrameworkStatusNotes
HonoWorksAPI or API + static assets
SolidStartWorkssingle Worker + nodejs_compat where needed
Qwik CityWorksWorkers template, pre-built bundle
WakuWorkspre-build + slim wrangler layout

If a template uses [[services]] (multiple Workers), treat it as unsupported until cellp gains multi-worker orchestration.

Next.js

DimensionStatus
OpenNext / vinext Worker bundles (not Node next start)Experimental
App Router on Node (Vercel-style SSR)Not a goal

Experimental — lab fixture checks only for minimal OpenNext and pinned App Router samples; that does not mean arbitrary Next versions deploy unchanged. See Framework tiers and From Vercel.

Vite SPA (React or Vue) + one Worker API with wrangler static assets — same mental model as Cloudflare Workers + Static Assets.

Supported runtime kinds (summary)

KindNotes
Cloudflare-style Workersexport default { fetch } (+ scheduled/queue as celld allows)
wrangler.json / wrangler.jsoncParsed from the bundle at deploy
D1, KV, R2, Queue, Workflows, CronSee bindings
Static assetswrangler assets within celld support
Durable ObjectsPartial in celld — verify before migration

Not supported / not a goal

KindWhat to do
Multiple Workers ([[services]] stacks)Single main Worker per version today
Worker-in-Worker SSR graphs without prebuildPre-bundle + no_bundle or use tier-1 adapters
Pages Functions that are not WorkersRewrite as a Worker
Workers AI, Vectorize, HyperdriveNot in celld — use D1 or call an external DB/API from the Worker
Arbitrary npm needing Node built-insWorkers-compatible packages + nodejs_compat where supported
Python WorkersNo

Compatibility

celld marks many Cloudflare APIs Partial. Read celld cloudflare-compat and the binding guides.

Languages

JavaScript / TypeScript compiled to a Worker bundle. Bring your own bundler as long as the artifact matches what celld deploy expects.

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