Supabase markets itself as the open-source Firebase alternative with simple, transparent pricing. The homepage says "Start for free, scale for $25/mo." That number is real — but it is also the floor, not the ceiling.
If you are evaluating Supabase for a production app, you need to understand what the real bill looks like at different stages of growth. This guide breaks down every cost component with real numbers from developers who shared their bills publicly.
The Free Plan: What You Actually Get
Supabase Free plan is generous for a hobby project:
- 500 MB database storage
- 1 GB file storage
- 5 GB bandwidth/month
- 50,000 monthly active users (auth)
- 500 MB Realtime messages
- 2 Edge Functions
This covers a prototype or a small side project. The catch: your database pauses after 7 days of inactivity. You can unpause it, but it is annoying if your app has low but consistent traffic. Several developers on r/Supabase noted this as a friction point for side projects that are not dead but are not busy either.
Verdict for free tier: Solid for learning and prototyping. Not viable for anything with real users.
The Pro Plan: $25/mo (The Starting Point)
The $25/mo Pro plan is where most serious projects start:
- 8 GB database storage (included)
- 100 GB file storage
- 250 GB bandwidth/month
- 100,000 monthly active users (auth)
- 5 GB Realtime messages
- 500 concurrent Realtime connections
- Daily backups (7-day retention)
This covers a small-to-medium production app well. An app with a few thousand users making normal database queries will likely stay within these limits.
Where the $25/mo stops covering you
Database storage overages: $0.125/GB beyond 8 GB. A media-heavy app storing user uploads, file metadata, and logs can hit 8 GB faster than you expect.
MAU overages: $0.00325/auth MAU beyond 100K. If your app goes viral, auth costs creep up.
Bandwidth overages: $0.09/GB beyond 250 GB. Apps serving lots of images or data-heavy API responses burn through this fast.
Realtime connections: $10 per 1,000 concurrent connections beyond the 500 included. This is the one that catches people building collaborative or live-updating features. If your app has 10 real-time elements per page, you hit the 500-connection ceiling at just 50 concurrent users. A developer on r/Supabase was blunt about this: "Firestore is orders of magnitude better for realtime, and I do not see how Supabase can be used for B2C implementations where realtime features are required."
The Hidden Costs Nobody Talks About
Compute Add-ons
The Pro plan gives you a shared compute instance (2 vCPU, 8 GB RAM). For most apps this is fine. But if your database runs complex queries, handles lots of concurrent connections, or powers real-time features heavily, you may need to upgrade.
Compute upgrades start at $0.01354/hour for larger instances. That is roughly $10-30/mo extra depending on the size. A developer on r/Supabase reported needing a compute upgrade when their app hit 10K daily users with a dashboard running complex aggregation queries.
Connection Pooling Issues
Supabase uses Supavisor for connection pooling. Under load, developers report zombie connections accumulating. One developer found 110+ zombie connections with only 1 active user (using Softr + Supabase). This does not cost extra directly, but it can degrade performance and force you into a compute upgrade.
Point-in-Time Recovery (PITR)
PITR — the ability to restore your database to any point in time — is available on Pro and above. It is included, but the storage for WAL (Write-Ahead Log) files counts toward your database storage. Heavy-write applications will see their storage consumption increase faster than expected.
Edge Function Cold Starts
Edge Functions on Supabase use Deno. Cold start times are generally fast, but if you have functions that need to scale quickly under burst traffic, you may encounter latency spikes. This does not have a direct dollar cost but affects user experience.
Real Cost Examples at Different Scales
Stage 1: Side Project / MVP (0-1K MAU)
| Item | Cost |
|---|---|
| Free plan or Pro | $0-25/mo |
| Expected total | $0-25/mo |
You will almost certainly stay within the free tier limits or barely touch the Pro plan. This is where Supabase shines.
Stage 2: Growing App (5K-50K MAU)
| Item | Cost |
|---|---|
| Pro plan | $25/mo |
| Extra storage (20 GB total) | ~$1.50/mo |
| Extra bandwidth (300 GB) | ~$4.50/mo |
| Compute upgrade (maybe) | $0-15/mo |
| Expected total | $30-45/mo |
Very reasonable. This is why developers choose Supabase over Firebase at this stage — the same scale on Firebase could cost $200-400/mo due to per-document-read billing.
Stage 3: Popular App (50K-250K MAU)
| Item | Cost |
|---|---|
| Pro plan | $25/mo |
| Extra database storage (40 GB) | ~$4/mo |
| Extra bandwidth (500 GB) | ~$22/mo |
| Compute (larger instance) | ~$30/mo |
| Extra MAU (150K overage) | ~$487/mo |
| Expected total | ~$570/mo |
The MAU overage is the big jump. If you have 250K monthly active authenticated users, the $0.00325/MAU overage adds up to nearly $500/mo. Note: this only applies to authenticated users. Anonymous/unauthenticated traffic does not count.
Independent estimates comparing this scale on Firebase put Firebase at $1,500-3,000+/mo for similar traffic patterns.
Supabase vs Firebase Pricing: Side by Side
| Metric | Supabase Pro | Firebase (Blaze) |
|---|---|---|
| Base price | $25/mo | Pay-as-you-go |
| Billing model | Storage + bandwidth + MAU | Per document read/write/delete |
| Budget caps | Yes (hard limits) | No |
| 5K MAU estimated cost | ~$30/mo | ~$50-150/mo |
| 50K MAU estimated cost | ~$100/mo | ~$400-800/mo |
| 250K MAU estimated cost | ~$570/mo | ~$1,500-3,000/mo |
| Surprise bills | Unlikely (hard caps) | Common (Reddit full of stories) |
The key difference is not the number — it is the predictability. Supabase bills are predictable because they are based on dimensions you can monitor (storage, bandwidth, user count). Firebase bills are unpredictable because they depend on how many documents your users read, which is influenced by your query patterns, caching strategy, and real-time listener usage.
A developer on r/Firebase summarized it: "Billing per document read influences design." Meaning Firebase pricing does not just cost you money — it changes how you build your app.
Self-Hosting: The Cheaper Alternative?
Supabase is open-source, so you can self-host it. The community on r/Supabase discussed this honestly. The consensus: self-hosting saves on the direct bill but costs more in operations time.
You need to manage PostgreSQL, PostgREST, GoTrue (auth), Realtime server, Storage API, and the Supabase Studio dashboard. You handle backups, SSL certificates, updates, security patches, and uptime monitoring. One developer estimated the operational burden at "several hours per month minimum, and you are on-call for outages."
For a solo founder or small team, the $25/mo Pro plan is cheaper than the engineering time self-hosting requires. Self-hosting makes sense if you have a dedicated DevOps person or strict data sovereignty requirements.
The Bottom Line
Supabase pricing is genuinely transparent. The $25/mo number is real for small-to-medium apps. It gets expensive at very large scale (250K+ MAU) due to MAU overages, but even then it is dramatically cheaper than Firebase at the same scale.
The biggest cost risk is not on the Supabase side — it is choosing Firebase and discovering that per-document-read billing scales poorly with real applications. Multiple Reddit threads document Firebase bills jumping from manageable to shocking when a single feature gets popular.
Start with Supabase Free. Upgrade to Pro when your app has real users. Monitor your storage and bandwidth in the dashboard. Set budget alerts. The bill will not surprise you — and that is more than Firebase can say.