Most vibe-coded apps could be hosted for $0 a month and aren't. The founder pays $25 for Lovable hosting, $20 for an email tool they don't really use, and $15 for a database service they don't need yet. Three months in, they're spending $60 a month on infrastructure for an app with eleven users. That bill is invisible until it isn't.
This is the stack I use for every vibe-coded app I put into production. Four services, all on their free tiers, all genuinely sufficient for a real app with real users, until they aren't, at which point I'll tell you exactly when to start paying and how much.
01The four-layer stack
Every vibe-coded web app needs four things to run: somewhere to serve the frontend and the API, somewhere to store the data and handle auth, somewhere to point a domain, and somewhere to send email. That's it. The free-tier stack:
Frontend + API: Vercel
Database + auth: Supabase
Domain + DNS: Cloudflare
Transactional email: Resend
Total cost: $0 a month, plus roughly $10 a year for the domain name itself (which is the only thing on this list you literally cannot get for free).
02Vercel for the frontend and API
Vercel hosts the actual app: the React or Next.js frontend most AI tools generate, plus the serverless functions that handle your API routes. Push to GitHub, Vercel deploys automatically. Custom domains, SSL, and previews on every pull request are all included.
The free tier (Hobby) gives you 100GB of bandwidth per month, which is enough for roughly 100,000 page views depending on how much your app downloads. Unlimited deployments. Unlimited projects. The catch: it's strictly for non-commercial use under their terms, though “commercial” is interpreted loosely. Having a Stripe button doesn't trigger it, but running it for a client does.
When you outgrow it: hitting 100GB bandwidth (a high-traffic month), needing team access, or running anything explicitly commercial. Pro tier is $20/month.
03Supabase for the database and auth
Supabase is the most common backend for vibe-coded apps in 2026, and the free tier is genuinely substantial. You get a Postgres database (500MB), 50,000 monthly active auth users, 5GB of bandwidth, 1GB of file storage, and the dashboard UI for managing everything.
For most apps, the 500MB database is the first wall. A typical SaaS app with ten thousand rows across five tables uses maybe 20MB. You'll hit 500MB somewhere between month six and year one, depending on what you store. If your app stores images or PDFs in the database (don't do this), much sooner.
The one watch-out is the inactivity pause. Free-tier projects pause after seven days of no activity. For a side project that's fine; for a real app that occasionally has a quiet week, it's a problem. The fix is either to ping the database from a cron job, or upgrade.
When you outgrow it: hitting 500MB database, hitting 50k MAU, or having paying users (the moment you charge anyone, the inactivity pause becomes unacceptable). Pro tier is $25/month and removes the pause.
04Cloudflare for the domain and DNS
Cloudflare does the unglamorous middle layer: DNS records that point your domain at Vercel, free SSL certificates so your URL has the padlock, DDoS protection, and a global CDN cache.
This is the only piece where you do have to pay something: roughly $10 a year for the domain name itself, which you can register through Cloudflare directly (cheaper than most registrars) or through Namecheap or any other registrar. Everything else Cloudflare offers (DNS, SSL, CDN, basic page rules, free email forwarding) is on a free tier that has no real limit for normal usage.
I'd suggest registering the domain through Cloudflare directly. It removes a layer of friction and they don't mark up the wholesale price like most registrars do.
When you outgrow it: almost never. Cloudflare's free tier covers far more than most apps need indefinitely.
05Resend for transactional email
Every app needs to send email eventually: signup confirmation, password reset, the occasional notification. Resend is the developer-friendly option here. The free tier covers 3,000 emails a month and 100 a day, which sounds small until you realize most early-stage apps send maybe 200 emails a month.
The setup is simpler than the alternatives. One API key. Domain verification through DNS records (which Cloudflare handles). Templates in React if you want them. The integration with Supabase auth is straightforward. You can route Supabase's auth emails through Resend instead of Supabase's default sender, which gives you proper deliverability.
When you outgrow it: sending more than 3,000 emails a month, or wanting a dedicated IP. Pro tier starts at $20/month for 50,000 emails.
06When you'll outgrow each tier (a timeline)
For a typical vibe-coded SaaS or community app, the cost progression looks like this:
Month 1 to 3: $0/month. Everything fits comfortably in free tiers. You're learning, iterating, getting first users.
Month 4 to 8: $25/month. You have paying users. The Supabase inactivity pause is no longer acceptable. Upgrade Supabase to Pro. Nothing else changes.
Month 9 to 12: $45/month. Traffic hits Vercel's bandwidth ceiling, or you formalize the project commercially and want to be on Pro to match the terms. Add Vercel Pro.
Year 1+: $65/month and up. You're sending more than 3,000 emails a month, you have a small team, you've added a monitoring service. Add Resend Pro and accept that infrastructure now costs about as much as a streaming bundle.
That's it. Most vibe-coded apps will never spend more than $100/month on hosting until they're doing serious revenue, and by that point the cost is rounding error.
→What to do if you're on Lovable hosting
Lovable's bundled hosting is fine for prototyping. It becomes expensive fast for anything serious, both in dollars and in lock-in, since moving your code off Lovable is harder than it looks. If your app is past the prototype phase, migrating to the stack above is a one-day project that pays for itself in the second month.
The same is true for Bolt's hosting, Replit's deployments, or any other AI-tool-bundled hosting. They're convenient because they're inside the tool. They're priced for that convenience.
If you want help with the migration, or you want someone to audit your existing setup before you commit to a path, the production checklist covers what to check, and the free audit will tell you exactly which version of this stack matches your app.