Part of Small software companiesSmall software companies · Costs

Bootstrapping a SaaS on a small monthly budget: the real bill at 0, 10 and 100 customers.

A small SaaS can run on about $10 a month before launch: always-on hosting with a database, a domain, and free tiers for email, off-site backups and uptime checks. Card fees then become the largest cost. At 100 customers paying $20 a month, our worked example spends about $125 plus US$20 a month, under 8% of revenue.

Facts checked

The minimal paid stack

Seven line items cover a typical web SaaS: the app, its database, a copy of the backups somewhere else, transactional email, a domain, card payments and an outside uptime check. Prices below come from each provider’s pricing page on the date shown. Canner prices are in Canadian dollars. Resend, Porkbun, Backblaze and UptimeRobot are US companies whose pages show a bare “$”; budget them as US dollars.

ItemProvider used herePriceFree tier
App hostingCanner Live$9/mo or $99/yr; 2 always-on projects, 2 GB memory, 25 GB storage, custom domainsStarter: $0, apps sleep after 3 h idle, no custom domain
Postgres with backupsIncluded with the Canner project$0 extra; $9/mo per project for a dedicated instance with point-in-time recoveryStarter: one database per project, backed up once a day
Off-site backup copy †Backblaze B2$6.95 per TB a monthFirst 10 GB
Transactional email †ResendPro: $20/mo for 50,000 emails, then $0.90 per 1,0003,000 a month, 100 a day
.ca domain †Porkbun$11.49 a year to renewNone
Card payments †Stripe2.9% + C$0.30 per domestic card charge; +0.8% for international cards; +2% when currency is converted; Billing (subscriptions) 0.7% of volumeNo monthly fee
Uptime check †UptimeRobotSolo plan: $9/mo billed yearly, 60-second checks50 monitors, 5-minute checks, commercial use allowed

† Competitor details come from each vendor’s own published pages on the dates shown; prices and plans change, so check the vendor before you decide. Off-site backup copy (2026-10-30) · Transactional email (2026-10-30) · .ca domain (2026-10-30) · Card payments (2026-10-30) · Uptime check (2026-10-30)

What to pay for first, and what can wait

Pay before launch for anything a paying customer would notice missing. Defer anything whose free tier still covers you, and set a calendar reminder for the limit that will end it.

  • Pay now: hosting that doesn’t sleep. A sleeping app makes the first visitor after a quiet spell wait, and payment webhooks arrive at any hour. On Canner that is the Live plan.
  • Pay now: your own domain. A yearly Canner Live plan includes one free .com, .ca or .quebec registration per organization; otherwise about $1 a month.
  • Free for now: email, off-site backups, uptime checks. All three free tiers above are enough for a launch.
  • Later: point-in-time recovery. Daily or hourly backups lose up to a day or an hour of writes. When a customer’s lost hour would cost you the customer, add the dedicated Postgres instance ($9/mo per project). Point-in-time recovery explains what it adds.
  • Later: more memory. App RAM is $4 per GB a month on Canner. Buy it when the memory chart says so, not on a hunch.
  • Only when asked: compliance paperwork. Canner’s Compliance add-on ($29/mo) provides a signed DPA and a data-residency attestation. Buy it when a customer’s procurement form asks for one.

Where free tiers bite

Free tiers are generous on paper and fail at specific edges. These are the edges to know before customers find them:

  • Sleep. Canner Starter stops an app after 3 hours idle and wakes it on the next request, including a CORS preflight. The wake-up takes as long as your app takes to boot. Fine for a demo; not for a product someone pays for.
  • Daily email caps. Resend’s free plan allows 3,000 emails a month but only 100 a day. A weekly digest to 150 users fails on day one, even though the monthly total is far under the limit.
  • Storage pools. Canner counts the app, builds, databases, backups and files against one pool: 5 GB on Starter, 25 GB on Live. Backups pause first when the pool is full, so watch it before it gets there.
  • Traffic. Starter includes 250 GB of traffic a month, which is plenty for an app and little for a site serving video.
  • Check intervals. A 5-minute uptime check can miss a 3-minute outage entirely. For a launch, that is acceptable.
  • Off-site storage. Backblaze’s free 10 GB holds a lot of compressed pg_dump files for a small database. Keep a retention rule so old dumps don’t carry you past it.

A worked monthly bill at 0, 10 and 100 customers

Assumptions: one web app plus Postgres, customers pay $20 a month by Canadian card through Stripe Billing, and email volume grows with customers. Amounts are before sales tax. Canner charges GST/HST and QST according to your billing address.

  • At launch, the whole bill is hosting and a domain. A yearly Live plan at $99 brings hosting to $8.25 a month and includes the domain.
  • At 10 customers, Stripe’s fees already match the hosting bill: each $20 charge costs $0.88 plus $0.14 of Billing fees. The fixed $0.30 per charge is why yearly plans keep more of the money: twelve $20 charges cost $12.24 in fees, one $240 yearly charge costs $8.94.
  • At 100 customers, card fees are $102 of the $125 paid in Canadian dollars. Point-in-time recovery and a little more memory are cheap next to them. Email has moved to a paid plan because 100 active customers send more than 100 emails on a busy day.
Line0 customers (launch)10 customers100 customers
Canner Live$9$9$9
Dedicated Postgres (point-in-time recovery)——$9
App RAM +1 GB——$4
Domain (.ca, $11.49 a year) †~$1~$1~$1
Email (Resend) †$0 (free)$0 (free)US$20 (Pro)
Off-site backups (B2) †$0 (under 10 GB)$0$0
Uptime check (UptimeRobot) †$0$0$0
Stripe: 2.9% + $0.30 per charge, plus 0.7% Billing †$0$10.20$102
Total~$10~$20~$125 + US$20
Revenue$0$200$2,000

† Competitor details come from each vendor’s own published pages on the dates shown; prices and plans change, so check the vendor before you decide. Domain (.ca, $11.49 a year) (2026-10-30) · Email (Resend) (2026-10-30) · Off-site backups (B2) (2026-10-30) · Uptime check (UptimeRobot) (2026-10-30) · Stripe: 2.9% + $0.30 per charge, plus 0.7% Billing (2026-10-30)

Keeping the bill low as you grow

  • Offer yearly plans. Fewer charges means fewer fixed $0.30 fees, and the cash arrives up front.
  • Price in Canadian dollars for Canadian customers. It avoids the 2% conversion fee on your own home market.
  • Keep one app and one database as long as you can. Every service you add has its own bill and its own free-tier edge. A stack you can maintain alone covers the time cost as well.
  • Review the bill quarterly. Cancel what you added for an experiment. Most small-SaaS overspend is forgotten trials, not hosting.

Questions

How much does it cost to run a small SaaS each month?

About $10 a month before launch for always-on hosting with a database and a domain, using free tiers for email, backups and uptime checks. In our worked example, 100 customers at $20 a month cost about $125 plus US$20, most of it card fees.

Can I launch a SaaS on free tiers only?

You can launch a demo that way. For paying customers, free hosting usually means the app sleeps when idle and has no custom domain, and free email plans cap daily sends. Pay for always-on hosting and a domain first.

What are Stripe’s fees in Canada?

2.9% plus C$0.30 per successful domestic card charge, 0.8% more for international cards and 2% more when currency is converted. Subscriptions through Stripe Billing add 0.7% of billed volume on the pay-as-you-go plan.

Start at $0, pay $9 when someone pays you.

Build on Starter, then move to Live for always-on hosting and your own domain. More guides for one-person companies in small software companies.