Compare / Cloudflare Workers

The Cloudflare Workers alternative that runs anything
Cloudflare Workers are fast, cheap, and everywhere, because they are V8 isolates rather than machines. That is also the constraint: no native modules, no arbitrary binaries, no process that stays alive between requests. Cloudflare’s own answer is Containers, a second runtime on the Paid plan with its own metering. Lizard runs the ordinary Linux container as the default, where ffmpeg, Playwright, a Postgres driver, and a queue consumer all work as written.
Why developers look for a Cloudflare Workers alternative
It is not Node, and not Linux
Workers implement a subset of Node APIs on the V8 isolate model. A dependency with a native addon, or a CLI you shell out to, is not a small problem to work around — it is out of scope, and node:child_process only looks available because it is a non-functional stub. Cloudflare’s answer is a separately billed Container.
Billing is CPU time, which hides the ceiling
The Paid plan is $5 a month for 10 million requests and 30 million CPU-milliseconds, then $0.30 per million requests and $0.02 per million CPU-ms. Cheap for routing and rendering, awkward for anything compute-heavy.
No long-lived process
A Worker exists to answer a request, and Durable Objects give you state, not a daemon. Cloudflare’s answer for an all-night queue consumer is a Container — Paid plan only, metered on memory, CPU, disk, and egress, with no promise that any instance survives the night.
The data layer is Cloudflare-shaped
D1, KV, R2, and Durable Objects are good products with their own APIs and their own limits. Portability out of them is real work.
Lizard vs Cloudflare Workers
Every figure read off Cloudflare Workers’s published pricing and our own. Last verified: 27 August 2026.
| Compared by | Lizard | Cloudflare Workers |
|---|---|---|
| Runtime | A full Linux container — any language, any binary | V8 isolates with a Node-compatible subset |
| Long-lived processes | Yes, with no time limit | Not in a Worker; a Container stays warm for an idle window you set, 10 minutes by default |
| Native modules and binaries | Anything that runs on Linux | Not in a Worker — only inside a Cloudflare Container, billed separately |
| Filesystem | Full read-write root | Virtual only — read-only /bundle and a /tmp wiped after every request, against the 128 MB memory limit |
| Billing | $0.0250128 per vCPU-hour, $0.0125064 per GB-hour, on measured use | $5 a month for 10M requests and 30M CPU-ms, then $0.30 per million requests and $0.02 per million CPU-ms |
| Egress | $0.045 per GB from the first byte | Not billed |
| Cold starts | None — the process is already running | Effectively none — isolates start in single-digit milliseconds |
| Free tier | No free tier: a 7-day trial with $5 in trial credits, then $19/month | 100,000 requests a day, 10 ms of CPU per invocation |
| Database | Managed Postgres, Redis, S3-compatible storage in the same project | D1, KV, R2, Durable Objects |
| Global placement | Regions you pick | Every Cloudflare location, by default |
When Cloudflare Workers are the better choice
Choose Workers when you need request handling close to users: routing, redirects, auth checks, API gateways and static sites with a little logic. Included requests and unmetered egress can make it cheaper at higher traffic. For a small app that would need Workers Paid, compare its $5 a month with Lizard Pro at $19 a month, which includes $19 of usage. You can also run Workers at the edge and Lizard for the origin.
Moving from Cloudflare Workers
No Dockerfile required — lizardpack detects the stack and writes one on the build node. If your repo already has a Dockerfile, it is used as it stands.
Frequently asked questions
For code that needs a real runtime — native modules, binaries, a filesystem, or a process that stays alive — a container platform such as Lizard, Railway, or Fly.io. For staying serverless with fewer runtime limits, Google Cloud Run or Deno Deploy. Many teams keep Workers at the edge and move only the parts that do not fit.
Because Workers are V8 isolates, not Node processes. Packages with native addons have nowhere to run, and ones that spawn child processes hit node:child_process, which ships as a non-functional stub. The code needs a Linux runtime, which is what a container platform gives you.
The Free plan gives 100,000 requests a day with a 10 ms CPU limit per invocation. The Paid plan is $5 a month including 10 million requests and 30 million CPU-milliseconds, then $0.30 per million requests and $0.02 per million CPU-ms. Egress is not billed at all.
Not inside a Worker. On Cloudflare, yes — Containers went GA in April 2026 on the Workers Paid plan, run any image, and stay up until an idle timeout you set, 10 minutes by default. Cloudflare will not promise any instance runs for a set period, disk is ephemeral, and memory, CPU, disk, and egress are metered on top of the $5 plan.
Usually not for small request handling. Workers Paid is $5 a month, and Lizard Pro is $19 a month with $19 of usage included. An app averaging 0.01 vCPU and 0.1 GB memory for 720 hours, with 10 GB egress, uses about $1.53 of that $19. Workers Free can cost $0 for eligible workloads, and included requests and unmetered egress can favor Workers at higher traffic. Lizard fits when the app needs a long-lived process, native modules or a database beside it. Compare the same task, storage and limits.
Build with AI. Ship with Lizard.
You don't need a platform team to go live. Your whole cloud, one CLI command away.
- Services
- —
- Add-ons
- —
- Deployments
- —
- Sandbox starts
- —