- Static sites: Cloudflare Pages, Vercel, Netlify. Often free.
- Small web apps: Render, Fly, Railway. $10–$50/month.
- Production web apps: Same PaaS at $100–$500/month, or a managed VPS like Hetzner/DigitalOcean.
- High-scale or compliance-heavy: AWS, Google Cloud, Azure with proper devops.
- Move to "real cloud" when you have an engineer to run it. Until then, PaaS pays for itself.
"Where should I host my app?" is one of those questions that has too many right answers. The market has fragmented: every category has a clear winner that's wrong for some use cases. Here's the honest, opinionated map we use with clients in 2026.
The four hosting categories
Static / JAMstack hosting
For marketing sites, blogs, and front-end-only apps with no server-side logic. You push to git; the platform builds and serves a static site behind a global CDN.
- Cloudflare Pages — generous free tier, fast global edge, 500 builds/month free, integrates with Workers for light dynamic logic.
- Vercel — best Next.js experience, great DX, expensive at scale.
- Netlify — venerable, reliable, slightly more expensive than the alternatives.
For most marketing sites and JAMstack apps under moderate traffic, all three are functionally equivalent and cost anywhere from $0–$30/month for a small site.
Managed PaaS
The sweet spot for most early-to-mid stage web apps. You bring a Dockerfile or a git repo; they handle servers, scaling, deploys, certificates, monitoring, and a database next door.
- Render — simple, reliable, $7/month for a small service plus $7/month for a managed Postgres. Our default for most projects this size.
- Fly.io — global by default, great for apps that need low latency in multiple regions. More configuration than Render.
- Railway — pleasant DX, good for hobby and side projects, less mature for production.
- Coolify (self-hosted) — open-source PaaS you run on a VPS. More work, lower cost, full ownership.
Cost: $10–$50/month for early stage, $100–$500/month as traffic and database grow. The operational overhead is genuinely low — one engineer can run 5+ apps without a dedicated devops person.
VPS + DIY
A virtual machine you SSH into and run your stack on. Cheaper at scale, more work to operate.
- Hetzner — Germany-based, exceptional price-to-performance, $5/month gets you a real server.
- DigitalOcean — solid, US-friendly, $6/month entry tier.
- Linode (Akamai) — similar profile to DO.
- Vultr — global locations, cheap.
Pair these with Coolify, Dokploy, or Caprover for a Heroku-like deploy experience on top of your own VM. Cost: $5–$50/month for the VM plus your time. Best when you have an engineer who's comfortable with Linux and you want to minimise vendor risk.
"Real" cloud (AWS, GCP, Azure)
The big three hyperscalers. Right answer for high-scale, compliance-heavy, or multi-region apps; overkill for everything else.
- AWS — most services, most documentation, also most ways to accidentally spend $10K/month.
- Google Cloud — better defaults than AWS, smaller service catalogue, decent for Kubernetes-heavy stacks.
- Azure — sensible if you already live in the Microsoft ecosystem, awkward if you don't.
Cost is highly variable — anywhere from $50/month for a tiny app you carefully right-sized to $50K/month for a misconfigured one. Plan for an engineer who knows the cloud you pick. The "DIY discount" against PaaS only materialises if you have someone running it.
How to choose: the decision tree
- Is your app a marketing site, blog, or front-end-only? → Cloudflare Pages or Vercel. Done.
- Do you have a backend with a database, but moderate traffic and no in-house devops? → Managed PaaS (Render, Fly).
- Do you have an engineer comfortable with Linux and want lower cost? → VPS + Coolify.
- Are you exceeding $5K/month on PaaS, or do customers/regulators require AWS/GCP/Azure? → Move to a hyperscaler with proper devops.
- Is performance latency-sensitive across multiple regions? → Fly.io for lighter-touch, AWS multi-region for heavy.
What hosting actually costs as you grow
Honest numbers for a typical SaaS app over its lifetime:
| Stage | Users | Monthly cost |
|---|---|---|
| Pre-launch | 0–10 | $0–$20 |
| Beta | 100–1K | $30–$80 |
| Early product-market fit | 1K–10K | $150–$500 |
| Growth | 10K–100K | $800–$4,000 |
| Scale | 100K+ | $5K–$50K+ |
What's actually in your hosting bill
- Compute: the servers running your code. Usually the smallest line until you scale.
- Database: often the most expensive single line. A managed Postgres at PaaS level is typically $7–$300/month; at hyperscaler level $50–$10K+.
- Bandwidth: egress traffic. Free in most CDN tiers; expensive on AWS.
- Storage: object stores like S3, R2. Cheap unless you store huge amounts of media.
- Email, queues, monitoring, logs: $20–$200 each, scales with usage.
- SSL/CDN: usually free now (Let's Encrypt + Cloudflare).
Common hosting mistakes
Going to AWS too early
Your two-person startup on bare AWS spends 30% of its engineering time on infrastructure. PaaS gives you most of that time back, at the cost of a slightly higher per-month bill that probably isn't a meaningful percentage of your spend yet.
Not setting cost alerts
Whatever cloud you're on, set spend alerts at 50%, 100%, 150% of your expected bill. The number of "we got a $40K AWS bill from a runaway lambda" stories is large and growing.
Ignoring backups
"It's the cloud" doesn't mean "automatically backed up". Database backups, image storage backups, configuration as code — assume nothing, configure everything.
Multi-region too early
Adding multi-region complexity before you have customers in multiple regions is an expensive way to feel sophisticated. Wait until users in another continent actually complain.
Picking based on conference talks
Twitter and conference talks select for cool, not boring. Boring (Postgres on Render, Caddy on a VPS) is what runs most production businesses. Pick boring.
How we host things
Our defaults, as of 2026:
- Marketing sites: Cloudflare Pages or Vercel.
- Small Flask/FastAPI/Express apps: Render or Coolify on a Hetzner VPS.
- Larger apps with traffic: Coolify on a beefier VPS, or hyperscaler if the client has compliance needs.
- Static + edge logic: Cloudflare Pages + Workers.
- Databases: Postgres on Render/Neon/Supabase, or managed RDS at scale.
- Object storage: Cloudflare R2 (no egress fees) or AWS S3.
If you'd like the same opinion applied to your project, we cover hosting in our services.
Frequently asked questions
What's the difference between PaaS and IaaS?
IaaS (AWS EC2, Hetzner) gives you raw machines you configure yourself. PaaS (Render, Fly, Heroku) gives you a deploy target — push code, it runs. PaaS is faster to ship; IaaS is cheaper at scale and more flexible. Most startups should start on PaaS.
Is Cloudflare hosting good for production?
For static sites, JAMstack apps, and edge-first architectures, yes — Cloudflare Pages + Workers + R2 + D1 is a credible production stack in 2026, with excellent global performance. For traditional server-side apps that need long-running processes, you'll still want a PaaS or VPS.
How do I migrate from one host to another?
Plan it carefully. The steps: deploy to the new host alongside the existing one, point a staging DNS at the new host, test, copy data, switch DNS for production with a short TTL. Plan for a 24–48 hour overlap where both hosts run. Don't migrate during your peak traffic season.
Should I self-host on a VPS in 2026?
For projects where cost matters and you have one Linux-comfortable engineer, yes. Coolify or Dokploy on a $20/month Hetzner VPS gives you 80% of the PaaS experience at 10% of the cost. You're trading dollars for a small amount of operational responsibility.
We host for clients on Render, Fly, Hetzner+Coolify, and the major clouds depending on what fits the project. If you want a recommendation matched to your traffic and team, send a brief at /#contact.