Cloudflare
What Cloudflare can and cannot do for this project.
| Use | Verdict | Cost |
|---|---|---|
| Frontend on Workers via the OpenNext adapter | Feasible and free-tier friendly, but untested with this app | Free tier |
| Cron Trigger keep-alive Worker | Yes — see the keep-alive page | Free tier |
| DNS and CDN with a custom domain in front of Render | Optional; verify WebSocket traffic through the proxy first | Free tier |
| Express HTTP server on Workers | Not a drop-in — Workers are not a long-running Node runtime | N/A |
ws WebSocket server on Workers | Not a drop-in, same reason | N/A |
| BullMQ flush worker on Workers | Not a drop-in, same reason | N/A |
| Backend on Cloudflare Containers | Possible, but not free — Containers need the Workers Paid plan and bill per running time, with no inbound raw TCP | Paid |
| WebSocket server rebuilt on Durable Objects | Possible as a redesign (SQLite-backed objects are on the free plan), not as a deployment | Free tier, rewrite required |
For the frontend, read Cloudflare's current Next.js guide first.
It may recommend a different adapter for new apps. Remember NEXT_PUBLIC_*
values are build-time variables, and flag this app as needing a full test pass
— sign-in, rooms, and presence — before trusting it there.
For the backend, do not lift and shift.
The HTTP server, the WebSocket server, and the flush worker all assume a continuously running Node process. Say it plainly: that is a redesign project (Durable Objects for realtime state, Queues for flush work), not a deployment afternoon.
Recommended setup: free demo stays Vercel plus Render HTTP and WS plus Neon plus Upstash plus a keep-alive window. Production-like adds an always-on paid worker so snapshots never wait on a sleeping process.
Last verified: 2026-10-11. Free-tier limits change — check the providers before relying on any number.
Provider docs
- Cloudflare Next.js guide
- OpenNext Cloudflare adapter
- Cloudflare Workers pricing
- Cloudflare Workers limits
- Durable Objects
- Cloudflare Containers
What it owns
- The honest verdict on each Cloudflare option
- The recommended free and production-like setups
Talks to
Sources: apps/web/package.json, apps/web/.env.example, apps/http-server/package.json, apps/ws-server/package.json, apps/flush-worker/package.json (documented at commit b0026d9)