A line-by-line P&L for a realistic 50-customer B2B SaaS on Next.js + Supabase + Stripe. Real vendor pricing, real Stripe fees, the things people forget, and what the costs look like at $5K and $10K MRR.
For a typical solo-founder SaaS at $1K MRR — we’ll define this as 50 customers paying $20/month, B2B, built on Next.js + Supabase + Stripe — the all-in monthly operating cost lands at $120 to $180. That’s tooling plus payment processing fees, before any contractor work or customer-acquisition spend. Net margin on that is around 85–90%. This guide walks the line items in the order you’ll see them on a real bank statement, with current vendor pricing for each.
Methodology. We modeled this P&L on a real solo SaaS we run plus several others we’ve audited. All line items use 2026 vendor pricing pulled from each vendor’s pricing page in May 2026. We note where actual costs vary based on your specific traffic patterns. How we research.
Numbers only mean something against a real shape. Here’s ours:
This is intentionally a fairly typical setup. If you’re running a media-heavy app, your bandwidth costs will be higher and your Supabase line will move. If you’re running a consumer app with a free tier, your MAU will balloon and your auth/Supabase line will move. The structure of the P&L is the same; the magnitudes shift.
For a Next.js app at 1K MRR, you’re typically still on Vercel Hobby ($0/month) if you’re a single user not running ads on the site, or you’ve upgraded to Vercel Pro at $20/month because you started running on a custom domain with team-style features and wanted out of the “personal use only” clause.
Most production solo SaaS land on Pro at this stage. The $20 base fee plus typically $0–$20 in usage overages (bandwidth past 1 TB, function executions past the included envelope) puts you at $20–$40/month for hosting. We’ll budget $25/month as the realistic average for a 50-customer B2B app.
If you’ve picked Railway instead of Vercel, your number is different. Railway’s usage-based model often comes out to $5–$15/month for an app this size if it’s mostly idle. We compared the tradeoffs in Vercel vs Railway.
Supabase Pro at $25/month, per the rates on supabase.com/pricing. At 50 customers and a few hundred MAU including unpaid trials, you’re nowhere near any overage threshold. Database storage is in the low GB range, bandwidth is well under 250 GB, MAU is well under 100K. The $25 covers the whole layer.
You’re paying for Pro instead of staying on Free for one specific reason: Free pauses your project after seven days of inactivity, and a real product can’t pause. The $25 buys you “always-on”. Capacity is incidental at this scale.
Stripe charges 2.9% + $0.30 per successful card charge for US-based businesses, per stripe.com/pricing. With 50 customers each making one $20 charge per month, that’s 50 transactions:
50 charges × ($20 × 2.9% + $0.30) = 50 × ($0.58 + $0.30) = 50 × $0.88 = $44.00
So Stripe costs you about $44/month, or 4.4% of revenue at this price point. The fixed $0.30 per transaction makes Stripe relatively expensive on smaller-ticket products — a $5/mo product would lose 7%+ to fees. At $20/mo, the math is fine.
If you’re selling internationally and you’d rather not deal with VAT compliance, a merchant-of-record like Lemon Squeezy charges 5% + 50¢ instead. That’s more expensive per transaction but they handle VAT, sales tax, and chargebacks for you. We covered the trade in Lemon Squeezy vs Stripe and the broader landscape in best payment processor for SaaS.
Resend Pro at $20/month, per resend.com/pricing, gives you 50,000 emails per month and proper deliverability. Resend Free covers 3,000 emails/month, which is enough for a tiny app but not for one with 50 paying customers plus signups, password resets, weekly digests, billing receipts, and so on.
You can stay on Free if your transactional volume is genuinely low — under 100 emails per day. Most B2B SaaS at $1K MRR cross that within a few months because of digest emails and notification volume.
$12–$15/year for a .com via Cloudflare Registrar or Namecheap. Amortized to ~$1.25/month. You also pay nothing for DNS if you use Cloudflare’s free DNS, which we recommend.
Sentry’s free tier covers 5,000 errors/month. At 50 customers and a stable app, you’ll generate fewer errors than that and stay free. Once you cross the free tier — usually because you ship a new feature that errors a lot until you fix it — you upgrade to Team at $26/month.
For our reference P&L, we’ll budget $0/month with the understanding that you’ll occasionally need to spend $26 in months when you ship breakage. Average across the year: maybe $8–$10/month.
PostHog’s free tier includes 1 million events per month. A 50-customer B2B app generates well under that. $0/month. The free tier on PostHog is genuinely usable for years — we covered the actual ceiling in the PostHog review.
If you bought a SaaS boilerplate like ShipFast for $299 (a one-time lifetime license, per shipfa.st) and you launched ten months ago, you should mentally allocate ~$25/month against that purchase for the first year. After year one, this drops to zero. Skipping the boilerplate is fine; the boilerplate’s pitch is that it saves you a week of work, which at $0/hour for your own time is technically free, but at $50/hour of opportunity cost is a steal.
| Category | Vendor | Monthly |
|---|---|---|
| Hosting | Vercel Pro (avg) | $25.00 |
| Database / auth / storage | Supabase Pro | $25.00 |
| Payment processing | Stripe (2.9% + 30¢) | $44.00 |
| Transactional email | Resend Pro | $20.00 |
| Domain (amortized) | Namecheap | $1.25 |
| Error monitoring | Sentry (avg) | $8.00 |
| Analytics | PostHog Free | $0.00 |
| Boilerplate (amortized year 1) | ShipFast | $25.00 |
| Total monthly run rate | $148.25 | |
If you skip the boilerplate amortization (because you didn’t buy one) and Sentry (because you’re still on the free tier), the number drops to $115/month and the margin goes up to ~89%. That’s the realistic range: $115–$150/month operating cost at $1K MRR.
The numbers above are the lines on your bank statement. Here are the costs that don’t show up there but matter when you’re running the business.
If you’re a US LLC selling to EU customers via Stripe, you are technically responsible for collecting and remitting VAT in jurisdictions where you cross thresholds. The compliance cost is either Quaderno or Sphere or Anrok at ~$50–$100/month, or a Lemon Squeezy/Paddle setup that’s 5% per transaction but bundles compliance.
For a US-only B2B SaaS, this often doesn’t matter. For anything sold to EU consumers, this is real money. We covered the full picture in best payment processor for SaaS.
At 50 customers you can probably handle support out of a shared Gmail inbox. Once you cross 200–300 customers, you’ll want a real tool. The realistic options:
For our $1K MRR P&L we’re assuming a shared inbox at $0. Add $25–$50/month if you upgrade.
Even “solo” founders almost always pay for occasional contractor work — a logo, a tricky bug, an integration. Average across the year, budget ~$50–$200/month for ad hoc contracting. This is not infrastructure, but it’s real, and it shows up on your bank statement.
If you have a mobile app, Apple takes 15–30% of in-app purchases plus a $99/year developer fee. Google Play is similar. This is invisible on your “tooling” line because it shows up as net revenue rather than gross revenue, but it’s a real haircut. Doesn’t apply to web-only SaaS.
Supabase Pro’s daily backups are fine for most cases. If you actually want a separate backup pipeline (cron job to S3, for instance), that’s a small AWS S3 bill (~$1–$5/month) plus your time. Most solo founders skip this. We don’t recommend you skip it forever.
With the line items above and the “forgotten” costs accounted for at modest levels, here’s the all-in:
| Category | Monthly |
|---|---|
| Tooling stack (from above) | $148.25 |
| Occasional contractor (avg) | $100.00 |
| VAT compliance (if applicable) | $50.00 |
| Realistic all-in | ~$300.00 |
The pure infrastructure margin is in the high 80s. The realistic-with-everything margin is in the low 70s. Both are healthy. SaaS at this scale is a high-margin business; you just have to not trip into the unforced-error costs (Intercom on day one, dedicated email IPs you don’t need, hiring before product-market fit).
Same product, 250 customers at $20/month. Most of the infrastructure scales surprisingly well:
Total tooling: roughly $400–$450/month. Net margin: ~91%. Stripe fees scale linearly — that’s the dominant cost — while infrastructure barely moves. This is the magic of SaaS economics: the second 200 customers cost almost nothing in fixed infrastructure.
500 customers at $20/month. Now infrastructure starts to scale meaningfully on a couple of axes:
Total tooling: roughly $700–$1,200/month all-in. Net margin: ~88–92%. The math still works beautifully — what changes is that you can now afford to spend on growth instead of infrastructure.
Worth internalizing because this drives every cost decision:
The ideal cost shape for a solo SaaS is: as much in the sub-linear bucket as possible, minimize step-functions until you can absorb them, accept that Stripe fees are linear and that’s fine.
Here’s a copy-and-paste summary of the $1K MRR cost picture, sized to fit on one screen:
A solo SaaS at $1K MRR costs $115–$150/month in tooling and processing for a healthy 85–90% gross margin. The realistic all-in — with occasional contractor work and VAT compliance for international sellers — lands around $300/month for ~70% net. Both numbers are excellent. The biggest single line is Stripe at $44, which scales linearly with revenue. Everything else stays nearly fixed until much higher MRR.
The pattern that protects margin: don’t buy tooling tiers before you need them, and don’t hire before product-market fit. The numbers in this guide assume you’re disciplined about both.
The stack, prompts, pricing, and mistakes to avoid — for solo founders building with AI.