the writing custom software & architecture 12 min

Supabase Pricing in 2026: Three Real Cost Models

Supabase pricing is a flat plan fee plus metered overages. Three hypothetical workloads, reusable formulas and the traps that quietly inflate the bill.

A database cube beside three coin stacks of rising height and a balance scale, suggesting tiered hosting costs.

Supabase pricing is a plan fee with usage overages on top. Pro costs $25 a month, Team starts at $599, Enterprise is custom, and every paid plan includes $10 in compute credits that cover one Micro instance. Usage beyond the included allowances, monthly active users, disk, egress, file storage and Edge Function invocations, is billed at published rates. Below you get a reusable formula, three hypothetical workloads costed line by line, and the places where bills move. Each model ends with a monthly total. Those are illustrative models, not anyone's real invoice, so re-check every rate before you commit.

The plan structure on the pricing page

There are four plans. That is the whole menu, and the pricing page lists the allowances for each.

Free is $0. You get 50,000 monthly active users, a 500 MB database on shared CPU with 500 MB RAM, 5 GB egress, 5 GB cached egress and 1 GB of file storage. The catch is operational: projects pause after 1 week of inactivity, and you are limited to 2 active projects. Fine for experiments. Not fine for anything a customer pays for.

Pro is $25 a month, with the first project included and additional projects from $10 a month. It adds daily backups kept for 7 days and 7-day log retention. The spend cap is on by default; turn it off and you can pay for resources beyond the included quota.

Team starts at $599 a month. It is Pro plus SOC2 and ISO 27001, project-scoped and read-only access, SSO for the dashboard, priority email support with SLAs, daily backups kept for 14 days and 28-day log retention. HIPAA is listed as a paid add-on. Enterprise is custom priced and lists uptime SLAs, AWS PrivateLink support and 24×7×365 premium support.

Here is how the allowances compare for the two plans most people actually choose between:

LineFree allowancePro allowancePro overage
Monthly active users50,000100,000$0.00325 per MAU
Database disk500 MB8 GB per project$0.125 per GB
Egress5 GB250 GB$0.09 per GB
Cached egress5 GB250 GB$0.03 per GB
File storage1 GB100 GB$0.0213 per GB

One structural point matters later. Billing is organisation-based: one subscription per organisation, with usage summed across projects. That comes from a 2023 Supabase post on organisation billing, so treat it as background and confirm it against the current billing docs. Extra projects are where the roughly $10 a month for another database comes from.

What you are actually billed for

The model is simple. Every line is either an allowance that is free until you cross it, or a charge that starts with the first unit. Confuse those two and estimates go wrong.

  • Included, then metered: MAUs, disk size, egress, cached egress, file storage, Edge Function invocations, Realtime connections and messages, log ingestion, image transformations.
  • Billed from the first unit: compute instances above what the $10 credit covers, advanced disk IOPS and throughput beyond the included amounts, the custom domain, Point in Time Recovery, log drains, branches, Advanced MFA phone.

Compute

This is the line most people underestimate. Each project gets its own Postgres instance, and compute is billed hourly, so you can scale up or down at any time and pay for the hours you ran. Monthly prices below are the published figures:

SizePer monthComputeMemory
Micro$10Shared1 GB
Small$15Shared2 GB
Medium$60Shared4 GB
Large$110Dedicated, 2 vCPUs8 GB
XL$210Dedicated, 4 vCPUs16 GB
2XL$410Dedicated, 8 vCPUs32 GB
4XL$960Dedicated, 16 vCPUs64 GB
8XL$1,870Dedicated, 32 vCPUs128 GB
12XL$2,800Dedicated, 48 vCPUs192 GB
16XL$3,730Dedicated, 64 vCPUs256 GB

Anything above 16XL is a sales discussion. The $10 monthly credit covers a Micro or offsets any other instance, so the pricing page's own Pro example reads: subscription $25, compute $10, credit minus $10, total $25.

Disk, egress and storage

Disk includes 8 GB per project on Pro, then costs $0.125 per GB. If you need more performance, advanced disk has two tiers. General Purpose goes to 64 TB with 8 GB included, 3,000 IOPS included then $0.024 per IOPS, and 125 MB/s included then $0.095 per MB/s. High Performance goes to 60 TB at $0.195 per GB and $0.119 per IOPS, with throughput scaling alongside IOPS.

Egress is easier to misread than it should be. The egress docs say it is incurred by every service, Database, Auth, Storage, Edge Functions, Realtime and Log Drains, against one unified quota, and that cached and uncached egress have independent quotas and pricing. File storage is billed per GB-hour, at $0.00002919 per GB-Hr, which is the $0.0213 per GB per month you see on the pricing page. Only usage above the quota is charged.

Auth, Edge Functions and Realtime

Auth is MAU-based: 100,000 included on Pro, then $0.00325 each. Third-party providers such as Clerk get the same treatment, per a March 2025 Supabase post. Add-ons sit on top: SAML SSO has 50 included then $0.015 per MAU, and Advanced MFA phone is $75 a month for the first project.

Edge Functions include 2 million invocations on Pro and Team, then $2 per million. Realtime includes 500 concurrent peak connections then $10 per 1,000, and 5 million messages then $2.50 per million.

Add-ons and logs

Custom domain is a flat $10 a month. Point in Time Recovery starts at $100 a month, that is $100 per 7 days of retention. Branching is $0.01344 per branch per hour. Image transformations include 100 origin images then $5 per 1,000.

Logs are the untidy line item. The pricing page shows Pro and Team with 20 GB log ingestion included then $0.50 per GB, and log query priced as ingestion usage times 100. A log drain is $60 per drain per month plus $0.20 per million events plus $0.09 per GB egress. But the June 2026 changelog describes metering with 5 GB ingest and 1,000 GB query included, overage at $0.50 per GB and $0.002 per GB, with existing organisations migrating from July 1. A secondary source dates the change differently and says reports differ on the allowance. I have kept logs out of the worked totals for that reason.

Three hypothetical workloads, one worksheet

These are made-up workloads. The inputs are mine, chosen to show how each meter behaves. The rates come from the pricing page and docs above. Swap in your own numbers.

The formula

  1. Start with the plan base: $25 for Pro, $599 for Team.
  2. Add the monthly price of every compute instance across your projects, then subtract the $10 credit (floor the result at zero).
  3. For each metered line (MAU, disk, egress, cached egress, storage): max(0, usage - allowance) x rate.
  4. For Edge Functions: invocations are billed in whole packages of 1 million, so charge the number of whole packages above the included allowance at $2 each.
  5. For Realtime: connections over 500 at $10 per 1,000, messages over 5 million at $2.50 per million. I treat both as pro rata, so check how the invoice rounds.
  6. Add flat add-ons, then add logs as a separate line with a range until the rates settle.

The inputs

A. Prototype. Pro plan, one project on Micro. 2,000 MAU, 300 MB of data, 2 GB egress, under 1 GB of files, a few thousand function calls. Everything sits inside the allowances. On Free this would cost $0, but a project that pauses after a week of quiet is a poor home for a demo you are showing to customers.

B. Growing SaaS. Pro plan, one project on Small. MAU above the included allowance, 20 GB disk, 400 GB egress, 300 GB cached egress, 150 GB file storage, Edge Function invocations above the included amount, a custom domain. Realtime stays under 500 peak connections and 5 million messages.

C. Larger production app. Team plan, one project on 2XL. MAU well above the included allowance, 500 GB General Purpose disk with 6,000 IOPS and 250 MB/s throughput, 2,000 GB egress, 3,000 GB cached egress, 1,000 GB file storage, Edge Function invocations well above the included amount, 2,000 peak Realtime connections, Realtime messages well above the included amount, PITR for 7 days, a custom domain and one log drain, base fee only.

The arithmetic

LineA. PrototypeB. Growing SaaSC. Larger app
Plan basePro base feePro base feeTeam base fee
Compute (before credit)Micro priceSmall price2XL price
Compute creditCredit appliedCredit appliedCredit applied
Disk and advanced disk$0Disk overageAdvanced disk charges
MAU overage$0MAU overageMAU overage
Egress$0Egress overageEgress overage
Cached egress$0Cached overageCached overage
File storage$0Storage overageStorage overage
Edge Functions$0Package chargesPackage charges
Realtime$0$0Connection and message overage
Flat add-ons$0Custom domainPITR, custom domain and log drain base fee
Monthly totalBase fee onlyBase fee plus overagesBase fee plus overages

Here is where the odd-looking numbers come from, so you can audit them.

  • B, MAU: the users over the allowance x $0.00325 give the MAU overage line.
  • B, disk: 12 GB over x $0.125 gives the disk line.
  • B, egress: 150 GB over x $0.09 gives the egress line, plus 50 GB cached over x $0.03 for the cached line.
  • B, storage: 50 GB over x $0.0213 gives the storage line.
  • B, Edge Functions: the invocations over the included 2 million round up to 2 packages at $2 each.
  • C, advanced disk: 492 GB over x $0.125, plus 3,000 IOPS over x $0.024, plus 125 MB/s over x $0.095. Those three sum to the advanced disk line.
  • C, MAU: the users over the allowance x $0.00325 give the MAU line.
  • C, egress: the egress above the allowance x $0.09, plus the cached egress above the allowance x $0.03.
  • C, storage: 900 GB x $0.0213 gives the storage line.
  • C, Edge Functions: the invocations above the included amount are billed in whole packages at $2 each.
  • C, Realtime: 1,500 connections over x $10 per 1,000 = $15, plus the messages over the allowance x $2.50 per million.
  • C, add-ons: PITR $100, custom domain $10, log drain $60.

Look at B again. Remove the MAU overage and the bill drops by about half. Half of that workload's cost is users past the allowance. That is the pattern I would watch for: a cheap-looking plan where one meter does most of the damage.

Notice what C is not. It is not mostly compute. The 2XL instance nets to $400, which is under a fifth of the total. MAUs, egress and Realtime together cost more. If you size your budget around the instance price alone, you will be wrong by a wide margin.

There is a catch with B. Its MAU, egress and storage figures all exceed Pro allowances, so the default spend cap would need to be off for those to be billed. That is a decision to make deliberately, not a default to forget.

Cost traps and what to watch each month

Most surprises come from lines that look free until they are not.

  • MAUs are per user, not per request. A marketing spike that brings sign-ups can move you from $0 to hundreds of dollars of overage. At $0.00325 each, 100,000 extra users is $325.
  • Egress is shared across services. Database reads, Auth responses, Storage downloads, Edge Function responses and Realtime all draw from one unified quota. Cached and uncached egress are tracked separately, so a good CDN hit rate moves traffic into the cheaper $0.03 per GB bucket.
  • Edge Function packages round up. Usage between two packages is billed as the next whole package. Invocations count regardless of status code, so a retry loop hammering a failing function is billed. OPTIONS preflight requests are not.
  • Branches and extra projects accrue hourly. At $0.01344 per hour, a branch left running for a full month adds up. Forgotten preview environments add up.
  • IOPS and throughput are separate meters. Raising disk performance on General Purpose adds charges per IOPS and per MB/s on top of size.
  • Logs are in flux. The pricing page and the June 2026 changelog disagree on allowances, and a secondary source gives yet another date. Treat logs as a range in your worksheet, and look at the Logs Ingest and Logs Query pages in the usage docs before you budget.
  • Announcements are not prices. Supabase said on October 2, 2026 that it is acquiring Turso with no pricing given. Do not plan around terms nobody has published.

Monitoring checkpoints

Put these on a calendar, not in your head.

  1. Before launch: decide on the spend cap, and write down what happens to users if a quota is hit versus what you pay if it is not.
  2. First week after launch: compare each metered line in the usage docs against your worksheet. A line that is already above forecast will be worse at month end.
  3. Monthly: reconcile the invoice against the formula above, line by line. Any gap you cannot explain is a meter you do not understand yet.
  4. After any architecture change: re-run the worksheet. Moving image processing or webhooks around changes invocations and egress at the same time.
  5. Quarterly: re-read the pricing page. The logs situation shows that meters can change within a year.

That last architecture point is concrete. If you are choosing whether image resizing and webhook handlers live in Edge Functions or in your app server, both choices move invocation packages and egress, and that is the kind of call covered in Next.js and Supabase development.

When a Postgres-only host fits better

The bundle itself is not a tax. Auth, Storage and Realtime cost nothing until you cross an allowance. So the argument for a Postgres-only product is never that you pay for features you do not use. It is narrower than that.

A plain managed Postgres host can be the better fit when:

  • You already have an auth provider, and it bills per user. Third-party Auth through Supabase carries the same MAU pricing as Supabase Auth, so bringing your own provider does not reduce that line.
  • Your workload is database-heavy and everything else is thin. Then compute and disk are your bill, and a simpler product with a simpler meter is easier to forecast.
  • You want one price you can explain on a single line, because finance asks for it.
  • You need a very different database shape, such as many small databases created on demand. That is a different pricing model altogether, and the Turso acquisition shows even Supabase sees it as separate from hosted Postgres.

The opposite case is just as real. If you would otherwise assemble auth, file storage, realtime and functions yourself, a $25 base with generous allowances is hard to beat on engineering time. The comparison to run is your worksheet total against the sum of the separate products you would stitch together, plus the hours to wire them.

For a broader view of how Supabase sits against Neon, PlanetScale, Turso and Convex, see the serverless database comparison and the Supabase overview. Use those for fit, not for rates. Rates change faster than comparison articles get updated, and secondary sources have already disagreed with the primary ones on logs.

FAQ

Does using Clerk or another third-party auth provider lower my MAU charges?

No. Per Supabase's March 2025 post, Third-party Auth was moved to parity with Supabase Auth: 50,000 MAU on Free, 100,000 on Pro, then $0.00325 per MAU. You might choose an external provider for features, but not for a cheaper meter.

How is file storage charged if I only exceed the quota for a few days?

Storage is metered per GB-hour at $0.00002919, which equals $0.0213 per GB per month, and only usage above your plan quota is charged. In principle a short overshoot costs a fraction of the monthly rate. Read the storage pricing docs for exactly how the hourly figures are summed.

What does an extra project cost?

Billing is one subscription per organisation with usage summed across projects. An extra project means another Postgres instance, which the pricing page puts at additional projects from $10 a month. The 2023 organisation-billing post gives the hourly rate as $0.01344. Compute above Micro is priced on top, and the single $10 credit is not repeated per project in the pricing page's own example.

Why did my Free project stop working?

Free projects are paused after 1 week of inactivity, and the plan allows 2 active projects. That is by design rather than a billing fault. If a project must stay up for real users, that is the clearest reason to move it to Pro.

A Supabase bill is the plan fee plus a handful of meters, and in the growing-SaaS model a single one, MAU overage, made up about half of it. The sharpest caveat is logs: the pricing page and the June 2026 changelog disagree on allowances, so treat that line as a range until the numbers settle.

this post in the tree

Need this done, not just read?

Discuss your website Book 30 minutes