What it actually costs to run a small SaaS every month

Filed under Guide

By Gerald · 11 September 2026

A calculator resting on printed charts next to a laptop and notebook on a desk

People ask me what Flow costs to run and I know what they are expecting: a hosting bill. Maybe two hundred dollars, maybe two thousand, said with a shrug. That answer is wrong in a specific way. Hosting is rarely the number that surprises you. Email, storage, and the AI line item are.

Here is the honest list, checked against each vendor's pricing page in July 2026, not the number I remember from launch day.

Infrastructure is the cost people worry about. Deliverability and storage are the costs that actually grow.

The full monthly list, line by line

This is the stack behind Flow, broken down by what each layer actually bills.

Service What it does Typical monthly cost
Convex Database, functions, auth, real-time sync $0 to $25 per developer, then usage
Vercel Hosting, CDN, deploys $0 to $20 per seat, then usage
Resend Transactional and reminder email $0 to $20, then per-email overage
Cloudinary Image and file storage, transforms $0 to $99
Cloudflare DNS and domain management Usually $0
GitHub Code hosting and CI $0 to $4 per user
OpenAI API AI-assisted features Usage-based, $5 to $150+
Domain flowproductivity.space About $1.50/month amortized

Eight rows. Most solo builders can name three of them from memory and forget the rest exist until an invoice lands.

Convex's free tier covers 1 million function calls, 0.5 GB of database storage, and 1 GB of file storage a month, with the Professional plan starting at $25 per developer for 25 million calls and 50 GB of storage, per Convex's pricing page in July 2026. Vercel's Hobby plan is free forever for personal projects; Pro is $20 per user monthly plus pay-as-you-go usage beyond 1 TB of bandwidth and 1 million function invocations. Resend's free tier is 3,000 emails a month with a 100-per-day cap, and Pro starts at $20 for 50,000. Cloudinary's free tier gives 25 monthly credits, which covers a genuinely surprising amount of image traffic before the $99 Plus tier becomes necessary.

None of that reads as expensive. That is the first lesson.

What stays free longer than you expect

Three stacks of coins on a wooden surface, arranged from small to large
The bills that start small rarely stay small. These are the ones to watch.

Cloudflare's free plan handles DNS, basic security, and CDN caching indefinitely, for essentially any traffic level a small SaaS will see before it needs enterprise features. I have never paid Cloudflare a dollar for Flow's DNS.

GitHub's free tier includes 2,000 Actions minutes a month for private repositories, and Actions on public repositories does not count against it at all. A solo developer running type checks and a deploy step on every push rarely crosses that line unless the pipeline is badly built. I cover this in more depth in keeping CI simple when you work alone.

Vercel's Hobby tier is genuinely free forever, not a trial. If you are pre-revenue and building solo, you can run a real product on it. The catch is that Hobby is for personal, non-commercial use per Vercel's terms, so a paying SaaS should move to Pro early regardless of whether it needs the extra usage yet, just to stay compliant.

Convex's free tier is the one that lasts longest in practice. A product with a few hundred active users, moderate real-time sync, and a modest amount of stored data can sit on the free plan for months. The database storage allowance (0.5 GB) is the first thing to fill up, not the function calls.

The three bills that grow fastest

Three services scale with usage in a way the others do not, and they are not the ones people expect.

Email deliverability. Every account creation, password reset, due-date reminder, and newsletter send counts against your email quota. A note-taking and task app sends more email than founders assume: verification codes, invite links, 24-hour and overdue reminders, weekly digests. Resend's overage rate is $0.90 per 1,000 emails beyond the included tier, which is fine until reminder volume triples with your user base and nobody adjusted the budget line.

File storage. Every image a user uploads, every PDF attached to a note, every avatar sits somewhere and gets served from a CDN. Cloudinary's credit system charges for storage, transformations, and bandwidth combined, so a product with heavy image use (screenshots, attachments, cover photos) burns through the free tier faster than a text-only product ever will.

AI usage. This is the newest line item and the least predictable. OpenAI's per-token pricing looks tiny in isolation, current mini-tier models price around $0.13 to $0.75 per million input tokens and roughly $1 to $4.50 per million output tokens depending on the model, per OpenAI's pricing page in July 2026. The problem is that AI features get used more than founders expect, and a single feature like auto-tagging or summarization run against every note a user creates adds up in a way a flat per-seat SaaS fee never does. Budget for AI the way you budget for bandwidth, not the way you budget for a fixed subscription.

Fixed costs versus per-user costs

Some of this list barely moves as you add customers. Some of it moves in a straight line with every signup.

Fixed, regardless of user count: the domain, the base Vercel or Convex seat fee, GitHub's per-user seat if you have contractors, Cloudflare.

Scales with users: email volume, file storage, database storage, AI token usage, and eventually function calls and bandwidth on Convex and Vercel.

The mistake I made early was budgeting like everything was fixed. A cost that looks like $45 a month at 50 users can be $300 at 2,000 users if it is one of the scaling lines and you never re-checked which category it was in.

Where I overpaid and fixed it

I ran Cloudinary on a paid tier for months longer than I needed to, because I never audited which uploads were actually images that needed transformation versus raw file attachments that just needed storage. Splitting those cleanly and being honest about which assets need the CDN's image pipeline versus plain storage would have kept me on the free tier for another quarter.

I also over-provisioned Resend early, assuming reminder email volume would be higher than it turned out to be, and paid for a tier I did not need for two months before checking actual send counts against the dashboard.

Neither mistake was dramatic. Both were the same root cause: guessing at usage instead of checking the actual numbers against the pricing page monthly. That habit is cheaper than any of the tools on this list.

A realistic budget at three stages of growth

Pre-launch, building alone. Domain plus nothing else, if you stay on free tiers across Convex, Vercel Hobby, Resend, and Cloudflare. Realistically $1.50 to $10 a month depending on whether you are already paying for a Pro seat out of habit.

Early customers, low hundreds of users. Expect $60 to $150 a month once you move to Vercel Pro for commercial use, add a Convex paid seat if storage exceeds the free tier, and start paying Resend for reminder volume. AI usage at this stage is usually still under $20 if features are used lightly.

Established small SaaS, low thousands of users. $300 to $800 a month is a realistic range once file storage, email volume, and AI usage all cross their free tiers simultaneously, plus a Cloudinary paid plan if the product handles a meaningful volume of images. This range assumes you are not yet at the point where database I/O or bandwidth overages dominate the bill, which is the next threshold up.

None of these figures include your own time, which is the actual largest cost of running a small SaaS and the one nobody puts a line item next to. See the full stack I use to build Flow for why each of these tools was chosen over the alternatives, and developer tools without a subscription if the per-seat costs above bother you as much as they bother me. Payment processing is a separate line entirely; if you are selling internationally, who handles your tax changes this math more than any hosting decision will.

Frequently asked questions

How much does it cost to run a small SaaS? For a solo-built product on modern infrastructure, expect somewhere between $10 a month pre-launch and $300 to $800 a month once you have a few thousand active users. The exact number depends heavily on email volume, file storage, and whether you ship AI features, more than on raw hosting.

Which parts of a stack scale with users? Email sending, file storage, database storage, and AI token usage scale directly with user count and activity. Domain registration and DNS stay roughly fixed too, along with your base platform seats, regardless of how many customers you have.

Can you run a product entirely on free tiers? Yes, for a meaningful stretch. Convex, Vercel, Resend, and Cloudflare all offer free tiers that cover real early-stage usage, not just a demo. The limits you hit first are usually database storage and email volume, not compute.

What is the most commonly forgotten cost? Email deliverability. Founders budget for hosting and forget that every account action generates an email, and that reminder or notification volume grows faster than raw user count once a product has any recurring engagement loop.

How much should I budget for AI features? Treat it like a variable cost tied to usage, not a flat subscription. A lightly used feature like tagging or summarization can cost under $20 a month at modest scale, but a feature run against every piece of content a user creates should be modeled against your actual token volume before you ship it, not guessed at.

Related reading

My verdict

Infrastructure is not where the surprise bill comes from. Track email volume, file storage, and AI usage monthly against the actual pricing pages, and the rest of the stack stays close to what you budgeted.

Own your notes and tasks

Flow puts notes, tasks, and a capture inbox in one place you pay for once, connected to your AI tools.

Create your account

Read this on flowproductivity.space · More from The Flow Journal · Try the Flow demo