BaaS Pricing Compared (2026) - Real Monthly Costs Worked Out
Backend as a service pricing looks similar on the surface: most paid plans start at $25 a month. The real differences show up in what's included, how overages are charged and which line items have no included amount at all. For a small production app, StitchDB Pro ($15.99), Supabase Pro ($25), Appwrite Pro ($25 per project) and Nhost Pro ($25) all land in the same range. At larger sizes, egress and monthly active users dominate, and the gap between platforms grows to several times.
Below are the list prices as of November 2026, then two worked examples with every assumption written down, so you can redo the math with your own numbers.
#Paid entry plans side by side
| StitchDB Pro | Supabase Pro | Appwrite Pro | Nhost Pro | Convex Professional | |
|---|---|---|---|---|---|
| Base price | $15.99/mo | From $25/mo | $25/mo per project | From $25/mo | $25 per developer/mo |
| Database | 10 GB per project | 8 GB disk per project | See Appwrite | 10 GB | 50 GB |
| File storage | 100 GB | 100 GB | See Appwrite | 50 GB | 100 GB |
| Egress / bandwidth | 1 TB | 250 GB (+250 GB cached) | 2 TB per project | See Nhost | 50 GB |
| Monthly active users | 100,000 | 100,000 | See Appwrite | Unlimited | Not metered by MAU |
| Compute | Included (shared) | $10 credit (one Micro) | Included | $15 credit | Included |
| Extra project | $9/mo | Its compute (~$10/mo Micro) | $15/mo | See Nhost | Not listed |
Sources: StitchDB pricing, Supabase pricing, Appwrite pricing update, Nhost pricing, Convex pricing. "See ..." means the number wasn't on a page we could verify.
Firebase is different: Blaze is pure pay as you go with free quotas, and Firestore bills per document read, write and delete. Spark (free) includes 50K reads, 20K writes and 20K deletes per day and 1 GiB stored (Firebase pricing). Its cost depends on how many documents your screens read, so it doesn't fit a flat table.
#Overage rates that matter
| Rate | StitchDB Pro | Supabase Pro | Convex Professional |
|---|---|---|---|
| Extra MAU | $0.002 | $0.00325 | n/a |
| Extra egress | $0.02 / GB | $0.09 / GB (cached $0.03) | $0.12 / GB |
| Extra database | $0.12 / GB | $0.125 / GB | $0.20 / GB |
| Extra file storage | $0.02 / GB | $0.0213 / GB | $0.03 / GB |
| Function invocations | $1 per 1M | $2 per 1M | $2 per 1M calls |
| Realtime messages | $1 per 1M | $2.50 per 1M | n/a |
StitchDB's rates are from its spend cap docs. They apply only when you turn the spend cap off.
#Example 1: a small production app
Assumptions: 20,000 MAU, 3 GB database, 30 GB of files, 150 GB egress a month, 1 million function calls, one project, one developer, low realtime use.
| Platform | Calculation | Monthly |
|---|---|---|
| StitchDB Pro | Everything within Pro | $15.99 |
| Supabase Pro | Everything within Pro; Micro covered by credit | $25 |
| Appwrite Pro | Within 2 TB bandwidth; check other quotas | $25 |
| Nhost Pro | Within 10 GB DB and 50 GB storage | $25 (+ any egress, see Nhost) |
| Convex Professional | 150 - 50 = 100 GB extra bandwidth x $0.12 | $37 |
At this size the choice should be about features, not price. A $10 difference is noise next to developer time.
#Example 2: a growing app
Assumptions: 150,000 MAU, 30 GB database, 300 GB of files, 1.5 TB egress a month, 4 million function calls, one project.
StitchDB. On Pro: 50,000 extra MAU x $0.002 = $100; 20 GB extra database x $0.12 = $2.40; 200 GB extra storage x $0.02 = $4; 500 GB extra egress x $0.02 = $10; 2M extra invocations x $1 = $2. Total about $134. On Scale ($49: 20 GB database, 250 GB storage, 2 TB egress, 200,000 MAU, 5M invocations): 10 GB x $0.14 = $1.40 plus 50 GB x $0.02 = $1, total about $51. Scale is the better plan here.
Supabase Pro. 50,000 extra MAU x $0.00325 = $162.50; 22 GB extra disk x $0.125 = $2.75; 200 GB extra storage x $0.0213 = $4.26; egress beyond the included 250 GB, at $0.09 per GB uncached, is up to 1,250 GB x $0.09 = $112.50 (less if much of it is cached egress at $0.03); 2M extra invocations x $2 = $4. Total about $311 before any compute upgrade. A 30 GB database with real traffic will often want more than a Micro instance, which adds compute cost.
Convex Professional, one developer. 30 GB fits in 50 GB; 200 GB extra files x $0.03 = $6; 1,450 GB extra bandwidth x $0.12 = $174. About $205 plus function calls beyond 25M if your reactive queries re-run often.
Appwrite Pro. $25 with 1.5 TB inside the 2 TB bandwidth; whether storage, database and users fit depends on quotas not listed on the page we verified. Check its calculator.
These are list-price estimates. Your egress mix, compute size and realtime use can move them a lot. The lesson is structural: at growth stage, MAU and egress rates decide the bill, not the base price.
#Costs people forget
- Compute with no included amount. On Supabase, compute beyond the credit is billed separately and isn't covered by the spend cap. On StitchDB, shared compute is included; dedicated servers on Scale and Enterprise are an explicit opt-in.
- Extra projects. Staging and production as separate projects double some costs. StitchDB charges $9/month per extra Pro project; Appwrite $15; Supabase the project's compute. Preview branches can replace a staging project; on StitchDB they're on Pro (3 branches).
- Point-in-time recovery. Supabase lists PITR at $100/month per 7 days of retention. StitchDB includes it on every plan: 7 days on Pro, 14 on Scale, 30 on Enterprise.
- Image transformations. Supabase charges $5 per 1,000 origin images beyond 100 on Pro. StitchDB includes 25,000 image transformations a month on Pro, and cached renders don't count.
- Auth e-mails and SMS. Check how many auth e-mails each plan sends for you before you need your own SMTP provider. SMS codes always cost money: Firebase bills them per SMS on Blaze, and StitchDB sends them through your own SMS provider account.
- Seats. Convex bills per developer. StitchDB Pro includes 10 team members; Appwrite Pro has unlimited seats.
#Spend caps: who can surprise you
| Platform | Protection, per its docs |
|---|---|
| StitchDB | Spend cap on by default on paid plans: usage stops at included amounts. With it off, usage is paid from prepaid credit with a monthly cap (default $20), so there's never debt. See Spend cap. |
| Supabase | Spend cap covers usage items like egress, MAU, storage and realtime; compute, PITR, custom domains and IPv4 are not covered. |
| Appwrite | Budget cap on Pro; Free projects freeze at limits. |
| Firebase | Blaze is pay as you go; set budget alerts in Google Cloud. |
If an unexpected bill would hurt, this table matters more than any per-GB rate. More on this in How to avoid surprise backend bills.
#FAQ
#What is the cheapest backend as a service?
For free tiers, Firebase Spark, Supabase Free, StitchDB Free and self-hosted PocketBase all cost $0. For paid production plans as of November 2026, StitchDB Pro at $15.99/month is the lowest entry price among the platforms here.
#Why are BaaS bills hard to predict?
Because they mix flat fees with usage: egress, MAU, function calls and, on Firebase, per-document reads. Model your busiest month.
#Is Firebase cheaper than Supabase?
For small apps that fit in Firebase's free quotas, often yes. For read-heavy apps, per-document billing can cost more than Supabase's resource-based pricing.
#Does StitchDB charge for overages?
Only if you turn the spend cap off. Then usage above the included amounts is charged from prepaid credit at the rates above, up to your monthly cap.
Run the numbers with your own usage: open the StitchDB pricing calculator.