Compare / Cloudflare Workers

Lizard vs Cloudflare Workers — the Lizard logo beside the Cloudflare Workers logo

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 byLizardCloudflare Workers
RuntimeA full Linux container — any language, any binaryV8 isolates with a Node-compatible subset
Long-lived processesYes, with no time limitNot in a Worker; a Container stays warm for an idle window you set, 10 minutes by default
Native modules and binariesAnything that runs on LinuxNot in a Worker — only inside a Cloudflare Container, billed separately
FilesystemFull read-write rootVirtual only — read-only /bundle and a /tmp wiped after every request, against the 128 MB memory limit
Billing$0.0278 per vCPU-hour, $0.0139 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
Egress50 GB a month included on Hobby, 300 GB on Pro, then $0.05 per GBNot billed
Cold startsNone — the process is already runningEffectively none — isolates start in single-digit milliseconds
Free tier$5 of credit, no card100,000 requests a day, 10 ms of CPU per invocation
DatabaseManaged Postgres, Redis, S3-compatible storage in the same projectD1, KV, R2, Durable Objects
Global placementRegions you pickEvery Cloudflare location, by default

When Cloudflare Workers are the better choice

Anything that belongs at the edge: routing, redirects, auth checks, A/B splits, image transforms, API gateways, and static sites with a little logic attached. Latency is better than anything origin-based can be, egress is genuinely free, and $5 a month covers 10 million requests. If your code fits the isolate model, nothing here beats it on price or reach — plenty of teams 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.

$npm i -g @lizard-build/cli
$lizard up
$lizard add postgres redis s3
Container as a service, with the real 2026 prices

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.

For pure request handling, usually not — $5 for 10 million requests with free egress is very hard to beat, and that is the shape Workers are built for. Lizard wins when the work is not request-shaped: long jobs, warm processes, native dependencies, and anything that needs a filesystem.

Build with AI. Ship with Lizard.

You don't need a platform team to go live. Your whole cloud, one CLI command away.

Try for free

No credit card required

We use cookies for essential site functionality and analytics. See our Cookie Policy.