| 1 | --- |
| 2 | title: Cloudflare |
| 3 | description: Build and deploy full applications on Cloudflare with Alchemy — one Worker runtime plus resources like Durable Objects, D1, R2, Queues, and Hyperdrive, wired together by typed bindings. |
| 4 | --- |
| 5 | |
| 6 | An alchemy app on Cloudflare is one **Worker** runtime plus the |
| 7 | resources it talks to — databases, object storage, queues, |
| 8 | stateful objects — all declared in the same TypeScript program and |
| 9 | wired together by typed bindings. Deploy the whole thing with |
| 10 | `bun alchemy deploy`; Alchemy figures out what changed. |
| 11 | |
| 12 | New here? [Set up your account](/cloudflare/setup), then start the |
| 13 | [tutorial](/cloudflare/tutorial/part-1). |
| 14 | |
| 15 | ## Compute |
| 16 | |
| 17 | - [Workers](/cloudflare/compute/workers) — the compute runtime; every app has |
| 18 | at least one. |
| 19 | - [Durable Objects](/cloudflare/compute/durable-objects) — globally-unique |
| 20 | stateful instances with transactional storage and typed RPC. |
| 21 | - [Containers](/cloudflare/compute/containers) — long-lived processes and |
| 22 | arbitrary runtimes, paired with a Durable Object for typed RPC. |
| 23 | - [Workflows](/cloudflare/compute/workflows) — durable multi-step jobs with |
| 24 | checkpointed, replayable steps. |
| 25 | |
| 26 | ## Frontend |
| 27 | |
| 28 | - [Vite](/cloudflare/frontend/vite) — deploy any pure-Vite app |
| 29 | (SPAs, TanStack Start, React Router, SolidStart) as a Worker with |
| 30 | assets. |
| 31 | - [Static sites](/cloudflare/frontend/static-site) — any build |
| 32 | command's static output, including frameworks Vite doesn't cover |
| 33 | yet. |
| 34 | |
| 35 | ## Data |
| 36 | |
| 37 | - [D1](/cloudflare/data/d1) — serverless SQLite with migrations managed as |
| 38 | part of the deploy. |
| 39 | - [KV](/cloudflare/data/kv) — edge key-value storage for config, sessions, |
| 40 | and cached lookups. |
| 41 | - [R2](/cloudflare/data/r2) — object storage with read/write-scoped |
| 42 | bindings. |
| 43 | - [Hyperdrive](/cloudflare/data/hyperdrive) — edge connection pooling for |
| 44 | external Postgres and MySQL. |
| 45 | |
| 46 | ## Messaging |
| 47 | |
| 48 | - [Queues](/cloudflare/messaging/queues) — at-least-once message delivery |
| 49 | between Workers. |
| 50 | |
| 51 | ## Networking |
| 52 | |
| 53 | - [Domains & DNS](/cloudflare/networking/domains) — zones, DNS records, and zone |
| 54 | settings as resources; adopt the domains you already own. |
| 55 | |
| 56 | ## Email |
| 57 | |
| 58 | - [Email](/cloudflare/email) — route inbound mail on a zone you own |
| 59 | and send from Workers. |
| 60 | |
| 61 | ## Security & secrets |
| 62 | |
| 63 | - [Secrets & env](/cloudflare/security/secrets-env) — bind `.env` values and |
| 64 | secrets into your Workers. |
| 65 | - [Protect a Worker with Access](/cloudflare/security/access) — put a login |
| 66 | wall in front of a Worker and read the authenticated identity from |
| 67 | `ctx.access`. |
| 68 | |
| 69 | ## What are you building? |
| 70 | |
| 71 | | App shape | Stack | |
| 72 | | --- | --- | |
| 73 | | HTTP API | [Worker](/cloudflare/compute/workers) + [D1](/cloudflare/data/d1) — see [Effect HTTP API](/cloudflare/apis/effect-http-api) | |
| 74 | | Call one Worker from another (internal RPC) | [Worker](/cloudflare/compute/workers) — see [Schemaless RPC](/cloudflare/compute/workers#call-another-worker) and the [concept](/apis/schemaless) | |
| 75 | | Typed API for external clients | [Effect RPC](/cloudflare/apis/effect-rpc) for Effect clients, [Effect HTTP API](/cloudflare/apis/effect-http-api) for plain HTTP | |
| 76 | | Real-time / WebSockets | [Durable Objects](/cloudflare/compute/durable-objects) — see [Accept WebSockets](/cloudflare/compute/hibernatable-websockets) | |
| 77 | | Full-stack app | [Worker](/cloudflare/compute/workers) + a React SPA — see [Add a React SPA](/cloudflare/frontend/vite-spa) or [Frontend frameworks](/cloudflare/frontend/frontends) | |
| 78 | | Background jobs | [Queues](/cloudflare/messaging/queues) | |
| 79 | | Postgres-backed API | [Hyperdrive](/cloudflare/data/hyperdrive) + [Drizzle](/cloudflare/data/drizzle) | |
| 80 | | Durable multi-step jobs | [Workflows](/cloudflare/compute/workflows) | |
| 81 | | AI apps | [AI Gateway](/cloudflare/ai/ai-gateway), [Effect AI](/cloudflare/ai/effect-ai), [AI Search](/cloudflare/ai/ai-search) | |
| 82 | | App on your own domain | [Domains & DNS](/cloudflare/networking/domains) — see [Custom domains & routes](/cloudflare/networking/custom-domains) | |
| 83 | | Production observability | [Ship Worker telemetry to Axiom](/cloudflare/observability/axiom-observability) | |
| 84 | |
| 85 | For frontends, alchemy is Workers-first: Pages resources exist, but |
| 86 | static assets served from a [Worker](/cloudflare/compute/workers) is the |
| 87 | recommended path. |
| 88 | |
| 89 | ## Where next |
| 90 | |
| 91 | - [Setup](/cloudflare/setup) — install alchemy and connect your |
| 92 | Cloudflare account. |
| 93 | - [Tutorial](/cloudflare/tutorial/part-1) — from empty directory to a |
| 94 | deployed Worker with tests, stages, and CI. |
| 95 | - [Custom domains & routes](/cloudflare/networking/custom-domains) — put |
| 96 | your Worker on a domain you own. |
| 97 | - [Ship Worker telemetry to Axiom](/cloudflare/observability/axiom-observability) — |
| 98 | datasets, ingest tokens, and monitors in the same Stack as the Worker. |
| 99 | - [API reference](/providers) — every Cloudflare resource and binding. |
| 100 | |
| 101 | ## Everything else |
| 102 | |
| 103 | The blocks above are what most apps are built from, but coverage goes |
| 104 | much further: the zero-trust and zone-security long tail — roughly 60 |
| 105 | more services, produced by the resource factory — ships as |
| 106 | reference-only documentation in the [API reference](/providers). |