Where to Host a SaaS App
8 platforms, priced for the months before your first customer


For a SaaS that has no paying customers yet, the cheapest place to run the frontend, an API, a PostgreSQL database and your own domain is Light Cloud at $5 a month in total. Railway matches that price for a small app and ships more extras, such as cron jobs and private networking. Google Cloud Run used directly comes next at about $8 if you set it up yourself, Heroku, DigitalOcean and Render land between $10 and $14, Vercel starts at $20 once a SaaS counts as commercial, and Fly.io's managed Postgres puts it near $40.
We make Light Cloud, which is the first row of the table below, so here is the method before the results. You can redo every number from the vendors' pages in about twenty minutes.
How we ranked
The question is narrow on purpose: what does it cost to keep a SaaS online during the months when nobody pays for it yet? Most products spend a long time there, and the bill in that stretch comes out of the founder's own pocket.
The reference app is the same boring shape as in our four-platform comparison: a React frontend, one Node.js API, a small PostgreSQL database and a custom domain. Traffic is about 1,000 API requests a day, which is a busy beta. Every price is a list price from the vendor's own pricing or docs page, checked on 2026-10-13, in US dollars, smallest sensible tier, no trial credits. Where a platform sells usage rather than fixed sizes, I show the arithmetic and the assumption.
Two things decide ties: whether a preview of the whole app (frontend and API) comes with the plan, and whether you can put a password on a staging site without buying anything extra. Both matter more for a SaaS than for a portfolio site, because a SaaS has a staging site that customers must not find.
Kept running all month, with no scale to zero, the same app gets the Always on prices in the table. Light Cloud comes seventh of eight there at about $56, because an always-on instance needs the $19 Starter plan and a Micro costs about $52 a month. Google Cloud Run can keep a minimum instance warm at its lower idle rate, about $5 a month at a quarter of a vCPU. Platforms that run the API only as functions have no documented way to keep it running, so they're listed last.
The ranking
1. Light Cloud
Best for: the lowest bill while the app is mostly idle.
The Lite plan is $5 a month and includes $5 of usage, a custom domain and one shared PostgreSQL database (pricing). My reference app uses about $4.33 of it: $4 for the shared database, about $0.20 for the API (1,000 requests a day at 0.2 s each is 1.7 instance-hours at $0.12), a few cents of build minutes, a cent for the static frontend and two cents per idle preview. So the invoice is the $5 plan and nothing else. That is the whole pitch of usage-based hosting that scales to zero: the API costs nothing in the hours nobody calls it, which before launch is most hours.
Every branch gets its own preview environment for every branch you push, frontend and API both, and a preview that sits idle costs nothing. You can put a visitor password on any environment on any plan, including Free; the staging tutorial takes five minutes. The database is managed PostgreSQL you create next to the app, and custom domains with free SSL start on Lite.
What it lacks, plainly: there are no cron jobs, no background workers and no private networking, so services call each other over public HTTPS. There is no built-in auth or email either. The shared database tier runs in Belgium only, so put the app there too. After a quiet spell the first request waits for a container to start; I measured 3.1 to 3.7 seconds. And a branch preview uses the production database until you give it its own.
2. Railway
Best for: the same $5 starting price with cron jobs, private networking and pull request environments built in.
Railway's Hobby plan is $5 a month and includes $5 of usage (docs). There are no fixed sizes: RAM costs $10 per GB a month and CPU $20 per vCPU a month, billed for what the services actually use. The honest way to say it: if the API and Postgres average under about half a GB of RAM between them, the bill stays at $5. Postgres is a template service billed the same way, so there is no separate database price.
It beats us on extras. Private networking, cron jobs and pull request environments that copy the whole app, database included, are on every plan (pricing). Hard spend limits exist from $10. Against it: Railway recommends the $20 Pro plan for commercial apps, its Free plan has no custom domains, and gating a preview behind a login needs the $5,000-a-month committed tier (announcement). If your SaaS needs a nightly job on day one, Railway is the better pick, and I'd say so to a friend.
3. Google Cloud Run, used directly
Best for: the lowest raw compute price, if you'll wire the rest up yourself.
Disclosure inside the disclosure: Light Cloud's containers run on Cloud Run, so this row is the do-it-yourself version of ours. The free tier covers 180,000 vCPU-seconds and 2 million requests a month (pricing); the reference API uses about 6,000 vCPU-seconds, so compute is $0. For the database you'd use Cloud SQL, where the smallest shared-core instance is $0.0105 an hour, about $7.67 a month before storage (Cloud SQL pricing).
The catch is the setup. You need a billing account, a Cloud SQL instance, IAM for the service, and a way to attach your domain, because Cloud Run's built-in domain mapping is still in preview and Google calls it not production-ready. There are no previews per pull request. On the plus side, spend caps that pause Cloud Run when a budget is hit became generally available on 2026-10-12 (release notes), which removes the scariest part of a hyperscaler for a founder.
4. Heroku
Best for: the familiar git push workflow and review apps.
The cheapest setup is an Eco dyno at $5 a month (1,000 shared hours, sleeps after 30 minutes without traffic, personal apps only) plus Essential-0 Postgres at $5 (pricing): $10, with the dyno also serving the built frontend. An always-on Basic dyno makes it $12. Review apps for pull requests can carry their own Postgres, billed like normal apps.
Two things to weigh. A card is required before you can deploy anything, and on 2026-02-06 Heroku moved to a sustaining engineering model, stability and security rather than new features. Your app keeps running, but you are choosing a platform that has stopped building.
5. DigitalOcean App Platform
Best for: fixed monthly prices with private networking and cron jobs included.
A container with 512 MiB is $5 a month and a development database is $7, so $12 (pricing); the frontend fits in the free tier for static sites. Components in an app talk over a private network, and scheduled jobs are billed only while they run (docs).
The development database has no backups by default and is deleted with the app, so a real SaaS moves to managed Postgres at about $15. You need a payment method to create anything, even a free static site, and previews per pull request are a GitHub Actions workflow you maintain.
6. Render
Best for: predictable per-service prices and full-stack previews on the Pro workspace.
A Starter web service is $7 a month for 512 MB and the smallest Postgres is $6 plus $0.30 per GB of storage (pricing), so $13.30 with the static frontend free. Render has private networking, cron jobs and background workers. The free tier exists, but Render's own docs say not to use it for production: free services spin down after 15 minutes and take about a minute to wake, and free databases expire after 30 days.
Previews are where the price moves. On the free Hobby workspace a pull request gets a preview of one service, without a database. Full-stack previews with services and databases need the Pro workspace at $25 a month flat, which takes the reference bill to $38.30.
7. Vercel
Best for: Next.js teams that want Vercel's frontend platform and will add a database partner.
A SaaS cannot live on Vercel's free plan: the fair use guidelines restrict Hobby to non-commercial use, and a paid developer or taking payments counts as commercial. Pro is $20 a month per deploying seat with $20 of usage included (Pro plan). The backend runs as functions (a Docker image can run as one too, in beta), and Postgres comes from a Marketplace partner such as Neon or Supabase, billed by them.
Previews are excellent and on every plan. A shared password on staging is $20 per project a month on Pro since the September 2026 change, though Vercel Authentication, which asks for a Vercel login instead, is free.
8. Fly.io
Best for: apps that need to run close to users in many regions.
The smallest always-on machine is $2.19 a month, but Managed Postgres starts at $38 plus $0.28 per GB (Postgres docs), so about $40. Fly's self-managed Postgres costs about $2 but is officially unsupported. Private networking is on by default and machines can stop when idle. There is no free tier for new accounts, and Fly says plainly that it doesn't support billing alerts yet.
Where the others beat us
If your SaaS needs scheduled jobs, a queue worker or services that talk privately, every platform in rows 2 to 6 has those today and we don't. Railway does it at our price. If you want sign-up, auth and file storage handed to you, none of the hosts above is the answer; that's a backend-as-a-service question, and a different post. Need a database copy per pull request? Railway and Render's Pro workspace make one; our previews share the production database until you point them elsewhere, which the preview tutorial shows. And if you expect a busy app with steady traffic all day, fixed instances get cheaper than scale-to-zero billing at some point; an always-on instance on our side starts at Starter.
Where we come out ahead is the stretch this post is about. Before launch, a SaaS is idle most of the day, it needs a staging site nobody outside can open, and every pull request deserves a link the founder can click on a phone. On Light Cloud those three cost $5 a month together, and the SaaS hosting bill only grows when people actually use the thing.
Pick the row that matches what your app needs in month one, not month twelve. Which of the extras above would you actually use before your first customer?
