Skip to content

cost · 5 min read ·

What Next.js and Supabase actually cost

The replacement stack is cheap and it is not free. Here is the arithmetic rather than the conclusion.

Lucian LutasFACTIONER SRL

Every comparison of Bubble against code gets written by someone with an interest in the answer, including this one. So here is the arithmetic instead of the conclusion, with the vendors' own published prices, and you can decide what it means.

The short version: the replacement stack is cheap and it is not free, the monthly bill is boringly predictable in a way Bubble's is not, and the real cost is not on the invoice.

The floor

A production app on this stack has four line items and two of them cancel out.

supabase pro
$25 / mo
8 GB database, 250 GB egress, 100 GB file storage, and $10 of compute credit
supabase compute · small
$15 / mo
Pro ships on the free micro instance. A real app wants Small, and the $10 credit covers most of it
vercel pro · one seat
$20 / mo
1 TB of transfer included

Twenty-five plus fifteen, less the ten of credit, plus twenty. Fifty dollars a month, or about €43 at the rate this site uses. Around €520 a year, and that is the number until you outgrow one of the allowances.

Which is the actual difference. Not that it is cheaper, because at low usage it frequently is not. It is that you can predict it.

When it stops being fifty dollars

Three meters, and you should know where each one sits.

Egress. 250 GB included with Supabase, then $0.09 per GB. Vercel includes 1 TB of transfer, then $0.15 per GB. Egress is what you serve to users, so this scales with real traffic rather than with how your workflows are built.

Database size. 8 GB included, then $0.125 per GB per month. To be blunt about the scale here: an extra 40 GB of database is five dollars. Storage is not where your bill goes.

File storage. 100 GB included, then $0.0213 per GB. Also not where your bill goes.

Compute is the one that moves. Small is a starting point, and a busy app moves up the instance sizes, which is a step change rather than a meter. That is the line item to watch, and it is legible: you can look at a graph and see why.

The comparison that matters

Bubble's bill is metered on Workload Units, which are consumed by work your app does, not by users served. A scheduled workflow that runs every hour and does nothing useful costs the same as one that does something. A search without constraints costs more than one with them. Overage runs at $0.30 per thousand WU with no ceiling unless you switch overages off, and switching them off caps the bill by capping the app.

The replacement stack meters on traffic and storage. Both of those are things you can reason about from your own analytics, which is why the number is predictable.

That is the structural difference, and it cuts both ways. Below a certain usage, Bubble is genuinely cheaper and you should stay: a Starter plan at $29 a month billed annually is well under the $50 floor above, and it includes 175,000 Workload Units. Two of us running that arithmetic would agree. Run the calculator on your own numbers and it will tell you to stay when staying is right.

The costs that are not on the invoice

This is the part most comparisons leave out, and leaving it out is how you get a migration that looked cheap and was not.

Somebody has to run it. Deploys, dependency updates, an error tracker, uptime monitoring, and being the person who gets woken up. Vercel and Supabase remove most of the infrastructure work, not the operational responsibility. If you have no developer and no retainer, this is a real gap and it is the honest reason some apps should stay on Bubble regardless of the arithmetic.

Backups you have tested. Supabase takes them. A backup you have never restored is a belief, not a backup, and restoring one is an afternoon you have to actually schedule.

Development is not free either. Changes cost developer time. On Bubble a lot of small changes cost a Bubble developer's time, which is a smaller and more expensive pool, but the change is in who you hire rather than in whether you pay someone. Anyone selling you a migration on the promise that changes become free is selling you something.

The migration itself. Five to fifteen thousand euro, published on the migration page, and it has to be recovered out of the monthly difference before any of this is a saving. If the payback period is longer than three years, the arithmetic is not your reason for doing it and you should be honest with yourself about what is.

What this does not tell you

Cost is one input and it is rarely the deciding one. The migrations that are clearly correct are usually driven by hiring, by a compliance requirement, or by a performance floor the platform will not let you get under. Cost is the thing that makes those decisions affordable, not the thing that makes them.

If your Bubble bill is flat and nobody is asking you about SOC 2, this article is interesting and not actionable. Read when to leave Bubble, and when not to instead.

All the figures above come from the vendors' published pricing pages and are listed with their sources, and the date they were last checked, on the calculator's assumptions table.

Run the same numbers on your own app.

The calculator uses the same published pricing config this post does, and it will tell you to stay on Bubble if that is what your numbers say.