Leapcell publishes the rarest sentence in serverless pricing: the one that tells you when to stop using serverless. Buried in its launch math is a worked equivalence — about $25 for 6.94 million requests at a 60-millisecond average response time. Sitting next to it is an explicit escape hatch: a persistent-server mode with fixed monthly pricing that any service can switch to at any time.
Most vendors hide the crossover point where usage billing turns against you. Leapcell built a button for it.
So this post takes the button seriously. It runs the actual numbers: the request volume where per-millisecond billing meets fixed pricing, the sensitivity case (average response time) that moves that crossover by 10x, and what "switch modes without migrating platforms" demands of your app under the hood.
The short answer: at 60 ms a request, the meter catches a flat box at roughly one million requests a month — about one request every two seconds, sustained. If your traffic graph sleeps, serverless wins by a landslide. If it never sleeps, the meter is just rent with extra steps.
The two meters, stated plainly
Leapcell offers two deployment modes for the same service, switchable at any time according to its docs:
- Serverless (pay-as-you-go). Billing starts when a request arrives and stops when the response is fully processed, metered per millisecond of compute time. Idle time bills zero. The platform scales from zero to thousands of instances on traffic, and instances that sit quiet for a while (around 30 minutes) go dormant — the next request pays a cold start of up to 250 ms. CPU and network are allocated from the memory size you select, so a bigger memory config burns the budget faster per millisecond but finishes sooner; the docs' own example is that 128 MB taking a full second costs the same as 1 GB taking a tenth of a second.
- Persistent server (charge-by-time). A fixed, transparent monthly price for continuously running capacity — lower cost per unit of time, no per-request meter, no surprise bill when traffic spikes. This is the mode the company points growing businesses at once per-millisecond billing stops being the cheaper shape.
Around both sits a free tier designed to make the serverless side nearly free to try: 20 projects, a free PostgreSQL database, and a listed allowance of 1,000,000 service invocations before a $0.60-per-million overage. The pitch is a lifecycle, not a plan: start on the meter when traffic is thin and spiky, flip to fixed pricing when it thickens — without replatforming.
That lifecycle framing is the honest part. The industry rule of thumb for rented-vs-owned compute is that usage billing wins below roughly 30–40 percent sustained utilization and loses above it. A workload averaging more than about one request per second of non-trivial CPU is usually cheaper on always-on capacity.
Leapcell's two modes are that rule of thumb with a toggle. The question is where, in requests per month, the toggle should flip — and what flipping it actually entails.
The worked number: three traffic profiles, one flat box
Anchor the math on Leapcell's own published equivalence: $25 of serverless spend ≈ 6.94 million requests at 60 ms average. Its launch post derives that figure against a 1-vCPU/2-GB traditional VM baseline of the same $25 a month (via getdeploying.com's compute-price tables).
That implies roughly $3.60 of compute per million 60-ms requests. Invocation overage is separate and listed: $0.60 per million past the first million.
Compare all of it against the flat-hardware baseline: a Hetzner CX22 cloud box (2 vCPU, 4 GB RAM) at about €3.79 a month before VAT — roughly $4.10 — with 20 TB of included traffic. The marginal cost of any request volume below absurd is zero.
| Monthly traffic (60 ms avg) | Serverless compute (~$3.60/M) | Invocation overage | Serverless total | Hetzner CX22 flat |
|---|---|---|---|---|
| 100K requests (side project) | ~$0.36 | $0 (inside 1 M included) | ~$0.36 | $4.10 box, ~91% cheaper to rent |
| 7 M requests (growing) | ~$25.20 | ~$3.60 | ~$28.80 | $4.10 box, ~7x cheaper to own |
| 100 M requests (steady) | ~$360 | ~$59 | ~$419 | $4.10 box, ~100x cheaper to own |
Two things pop out. First, the low end is not close: the side project costs about a third of a dollar on the meter against four dollars of flat box. Serverless wins by an order of magnitude — before counting the free tier, which likely zeroes it entirely.
Second, the middle row is the entire story: at 7 million requests a month the meter is already 7x the box. The crossover sits far below it, at roughly 1.1 million 60-ms requests a month — about one request every two seconds, sustained. Sound familiar? It is the 30–40 percent utilization rule wearing a requests-per-month costume.
And now the sensitivity case the headline promised. Average response time is the variable that moves the crossover by an order of magnitude, because cost scales with milliseconds burned. At a 200-ms average (a chatty API, an unoptimized ORM query per request) the per-million price roughly triples to ~$12, and break-even against the $4.10 box drops to ~340K requests a month — a decently read blog with comments.
At a 20-ms average (cached, lean handlers) the per-million price falls to ~$1.20 and break-even rises to ~3.4 M requests a month. Anyone quoting a single break-even number without naming the response-time assumption is selling you their workload, not yours. Measure your p50 handler latency first; it matters more than the price list.
One caveat, stated openly: Leapcell does not publish a bare per-GB-second unit price in the docs I read, so this table is anchored on the company's own $25/6.94 M equivalence rather than derived from a rate card. If your memory config or region prices differently, recompute the per-million figure and the crossover moves proportionally — the method holds even if the constants shift.
What "switch without migrating" actually requires
The escape hatch is real — same platform, same deploy pipeline, flip the mode — but it is not free of preconditions. Both modes share one architecture, and that architecture is the serverless one.
Leapcell's service model adheres to 12-factor: only /tmp is writable and it is non-persistent, everything else is read-only, state lives in external services (its Postgres with connection pooling, its serverless Redis), and configuration arrives via environment variables. That is exactly what makes a service portable between the two modes — there is no local disk or sticky session to untangle when you flip.
But it also means the persistent mode never lets you behave like a pet server: you cannot "switch to fixed pricing" and then start writing to local disk, keeping in-memory sessions, or assuming one warm process. The discipline the meter demanded is the discipline the flat rate inherits.
Three concrete gotchas to price into the switch decision:
- Cold starts are a serverless-mode tax, not a platform tax. Up to 250 ms after ~30 minutes idle is nothing to a cron job and everything to a latency-sensitive API at 3 a.m. Teams often flip to persistent not because the meter got expensive but because their p99 got lumpy — and that is a legitimate reason, just a different row in the spreadsheet than the break-even table.
- Connection pooling becomes load-bearing at scale. Serverless mode can burst to thousands of instances, each wanting a database connection; that is why Leapcell ships external connection pooling on its Postgres offering. Before the switch, verify pool sizing against your burst ceiling, not your average — the failure mode is a traffic spike that scales beautifully at the compute layer and falls over at the database.
- Memory sizing is a cost lever, not just a performance knob. Because CPU and bandwidth scale with configured memory, the docs' 128-MB-vs-1-GB example cuts both ways: doubling memory to halve latency can hold cost flat or even cut it, but only if latency actually halves. An over-provisioned memory config with unchanged handler time is just a faster meter. Tune it with the per-millisecond lens on, whichever mode you are in.
None of this is an argument against the escape hatch — it is the reason the hatch works. A platform that forced stateful habits in persistent mode and stateless habits in serverless mode would make switching a migration.
Leapcell forcing statelessness everywhere makes switching a billing event. That is the under-the-hood thing the feature actually required: one execution model, two invoices.
The owned-hardware contrast, stated honestly
A self-hosted PaaS on owned hardware sidesteps the whole question — there is no per-millisecond meter, so there is no crossover to compute and no mode to switch. The CX22 row in the table above is the entire pricing page: $4.10 whether you serve 100K requests or 100 M. Bandwidth is included up to 20 TB, which covers all three profiles without blinking.
Below ~1 M requests a month you overpay for idle iron. Above it you keep every marginal request at zero marginal cost, forever, with no toggle to remember to flip.
But "no meter" is not "no cost." What the flat box adds back is everything the meter was quietly bundling: autoscaling you configure, connection pooling you size, Postgres you back up, cold starts you eliminate by simply never scaling to zero, and the capacity planning Leapcell's burst-to-thousands was doing for you.
The honest framing is operational surface versus metering risk. Leapcell's escape hatch exists because metering risk is real and grows with traffic; self-hosting exists because for steady, predictable workloads the operational surface is fixed and the metering risk is unbounded. Pick the risk you would rather manage: a bill that scales with success, or a fleet that needs feeding whether or not success shows up.
A reasonable decision rule falls straight out of the table:
- Spiky or thin (< ~1 M requests/mo at your latency): stay on serverless. The meter is cheaper and the free tier may zero it.
- Steady and growing (past the crossover, latency-adjusted): flip to persistent inside Leapcell before the meter doubles the box — set a dashboard alert at ~70 percent of your computed crossover, because traffic arrives gradually and then suddenly.
- Steady, predictable, and high (10 M+/mo with a team that can run a fleet): price the flat box. If you already operate Cluster-API-managed Hetzner capacity for other workloads, the marginal home for one more service is nearly free.
The bigger signal
Step back and the feature is more interesting than the vendor. A serverless platform shipping a first-class "leave serverless" button — with fixed pricing, positioned as the grown-up default rather than a defeat — is an admission the whole industry has been circling: per-millisecond billing is customer acquisition, and flat capacity is retention.
The vendors that force you to replatform to get flat pricing (a migration, a rewrite, a new vendor evaluation) are monetizing your inertia. The ones that let you flip a toggle are betting the toggle keeps you.
Leapcell's bet is unusually explicit, and the math above suggests it is priced to be taken: the crossover arrives early enough that real apps will hit it, and the switch is cheap enough that hitting it feels like graduation rather than betrayal. Whether you take the toggle or skip the meter entirely on hardware you own, the discipline is the same — know your requests per month, know your average milliseconds, and never let a vendor's default mode make that decision for you.
Bex.co is the open-source, AI-native Render alternative — push a git repo, get a running HTTPS service on machines you own. Star the repo on GitHub or deploy your first app today.



