The runtime
celld embeds V8 and implements the Cloudflare Workers runtime APIs. It’s a WinterCG web runtime, not workerd, Node.js, or a browser. Write standard web-platform JavaScript, such asfetch, Request, Response, streams, URL, and Web Crypto. Reach storage and background work through the bindings that you declare in the wrangler.json file.
Most of what you know about Cloudflare Workers applies. Where celld differs, the page for each feature says so and says what to do instead. If this documentation and your knowledge of Cloudflare disagree, follow this documentation. For a summary of the differences, see Differences from Cloudflare Workers.
A minimal App
The smallest App is awrangler.json file and an entry module that exports a fetch handler:
Choose storage and background work
Module-level variables aren’t state. Each node runs its own isolates, and celld recycles isolates, so celld doesn’t keep a value in a module variable. Keep all durable state in a binding. An App can use many bindings together. The following table lists what to use for each kind of need:Explore the docs
The App contract
The files of an App, the source limits, and the rules that keep data attached to your code.
Test on the dev server
Run and debug the App in its sandbox before you deploy.
Configure wrangler.json
The configuration keys and bindings that Judt accepts.
npm packages and builds
Add dependencies, TypeScript, JSX, or a frontend bundler.
Durable Objects
Per-entity state with SQLite, alarms, and WebSockets.
Runtime reference
Handlers, globals, Node.js built-in modules, crypto, and limits.