You built a full-stack app with Cursor, Claude Code, or Lovable in about five minutes. Now it works perfectly on localhost and goes absolutely nowhere on the internet. That is the deployment gap, and it stops more vibe-coded projects than bad code ever does.
This guide covers every deployment option for vibe-coded apps in 2026: what works, what does not, how to identify your stack, and the fastest path from localhost to live URL for each type of app.
Table of Contents
Key Takeaway
Identify your stack first (static, full-stack Node.js, Python, or mixed) before choosing a hosting platform, deploying to the wrong one costs an hour.
Static apps (React SPA, plain HTML/CSS/JS) deploy to Vercel, Netlify, or Cloudflare Pages in under two minutes for free.
Full-stack apps with a backend need a runtime environment; serverless platforms like Vercel will break SQLite and persistent file storage.
AI-generated code almost always has three problems before production: hardcoded localhost URLs, missing environment variables, and CORS errors.
What Vibe-Coded Apps Look Like
Before picking a hosting platform, it helps to know what AI coding tools typically produce. The output depends on which tool you used.

Cursor and Claude Code generate code locally on your machine. The typical output is:
- React or Next.js frontends – single-page apps, dashboards, landing pages
- Node.js backends – Express or Fastify APIs, sometimes with SQLite or PostgreSQL
- Python backends – Flask or FastAPI services, data dashboards with Streamlit
Lovable and Bolt.new generate apps in the browser and usually produce:
- React + Vite frontends – often connected to Supabase for auth and database
- Full-stack prototypes – frontend + API routes, ready to demo but often needing cleanup before production (hardcoded URLs, missing error handling)
The key difference from WordPress: these apps need a runtime. WordPress runs on any shared hosting with PHP and MySQL, and tools like InstaWP make spinning up a WordPress site trivial. But a Next.js app needs Node.js. A FastAPI app needs Python. A React SPA needs a static file server. The hosting requirements depend entirely on what the AI generated.
This is where most vibe coders get stuck. WordPress has a thousand one-click hosting options. A Node.js app with SQLite? The options get thin fast.
How to Create a Vibe Coded App?
Let’s start learning the basic of a vibe coded app development.
Step 1: Figure Out What You Have
This is the step most guides skip, and skipping it is why developers end up trying to deploy a full-stack app on a static hosting platform. Look at your project structure and match it to one of these patterns:
- Static or frontend-only (no server needed) You have an
index.htmlfile, or a React/Vue/Svelte app with only client-side code. No API routes, no database calls from a backend, no server-side rendering. Look for avite.config.jswith no SSR config, or a plain HTML/CSS/JS folder. - Full-stack Node.js You have a
package.jsonwith a start script that runs a server, Express, Fastify, or Next.js with API routes. Possibly aprisma/folder or direct database calls. Look forserver.js,app.js,next.config.jswith API routes, or asrc/server/directory. - Full-stack Python You have a
requirements.txtorpyproject.tomlwith Flask, FastAPI, or Django. Amain.pyorapp.pythat starts a web server. Database operations, background tasks, or file processing. - Mixed (frontend and separate backend) Two directories — something like
frontend/andbackend/orclient/andserver/. The frontend is static, the backend is Node.js or Python. This is common with Cursor-generated apps.
Your stack determines everything else. Get this right before you read another word.
Step 2: Deploy a Static/Frontend-Only App
If your vibe-coded app is purely client-side, React, Vue, or plain HTML, you are in the easy case. Multiple platforms handle this well, most with free tiers, and all of them deploy in under two minutes.
Option A: Vercel
Vercel is the best choice for Next.js apps (they built Next.js) and React SPAs. Use the command below to deploy a static-only app using Vercel.
npm i -g vercel
cd my-app
vercelVercel auto-detects your framework, builds it, and gives you a live URL. The free tier is generous for static sites.
One important gotcha: if your Next.js app has API routes with database calls or file system access, Vercel converts them to serverless functions. SQLite will not work. Persistent file storage will not work. If your app does either of those things, skip to Step 3.
Option B: Netlify
Similar to Vercel but more framework-agnostic, and slightly more flexible for non-Next.js projects.
npm i -g netlify-cli
cd my-app
netlify deploy --prodFree tier, automatic HTTPS, and preview deploys for pull requests. Same serverless limitations as Vercel for anything beyond static files.
Option C: Cloudflare Pages
Free, fast, and runs on Cloudflare’s edge network.
npm i -g wrangler
cd my-app
npm run build
wrangler pages deploy distBest raw performance for static sites. The Workers platform can handle some backend logic, but it uses a different programming model than what most AI tools generate, so expect friction if you go that route.
All three options work for static apps. Pick whichever you already have an account with. Deploy time is under two minutes for all of them.
Step 3: Deploy a Full-Stack App (Where It Gets Hard)
This is where the deployment gap lives. Your AI-generated app has a backend — an Express API, a FastAPI service, or a Next.js app with server-side rendering and real database calls. The static hosting platforms from Step 2 cannot run it. You need a platform that provides an actual server runtime.
Option A: Railway
Railway detects your stack from your repo and deploys it. It is the closest experience to static hosting simplicity, but for full-stack apps.
- Push your code to GitHub
- Connect Railway to the repo
- Railway detects Node.js or Python, builds, and deploys
Pricing: $5/month subscription plus usage-based billing for compute. A small app typically runs $5 to $10/month. A busier app can climb to $30 to $40/month.
Limitation: No SSH access. Usage-based pricing can surprise you. The database is a separate add-on billed by usage.
Option B: Render
Similar to Railway with a more traditional dashboard interface.
- Push to GitHub
- Connect Render, select “Web Service”
- Render builds and deploys
Pricing: The free tier spins down after 15 minutes of inactivity, meaning your app cold-starts on each visit. Paid plans from $7/month per service. Managed PostgreSQL starts at $7/month extra. The free-tier sleeping behavior is a dealbreaker for anything you want to demo to a client or share publicly.
Option C: CLI Deploy (One Command)
If you want to skip the GitHub-connect-configure-wait flow, CLI deployment is the fastest path. You run a command in your project directory and get a live URL.
One-command deploy platforms like InstaPods handle this for Node.js, Python, and static apps. One command from your terminal:
cd my-vibe-coded-app
instapods deploy The CLI reads your project files (package.json, requirements.txt, or index.html), creates a server, uploads your code, installs dependencies, and returns a live URL with HTTPS.
No GitHub repo required, no build config, no Dockerfile. The whole process takes about 5 seconds, you go from terminal to live URL before you can switch browser tabs.
Pricing: $3/mo flat for the base plan. Databases (PostgreSQL, MySQL, Redis) included at no extra cost. No usage billing.
Why this matters for vibe coders: When you’re iterating with Cursor or Claude Code, changing things every few minutes, a CLI deploy that takes 5 seconds beats a GitHub push-and-wait pipeline that takes 2 minutes. You stay in flow instead of waiting for builds.
Option D: VPS (The Honest Option)
You rent a virtual server from DigitalOcean ($6/month), Hetzner ($4/month), or AWS Lightsail ($3.50/month) and configure it yourself. This means SSH-ing into the server, installing Node.js or Python, uploading your code, installing dependencies, configuring a process manager, setting up nginx as a reverse proxy, provisioning an SSL certificate, and configuring the firewall.
The first-time setup runs one to four hours depending on experience. Each step has real gotchas. Nginx config alone has derailed more side projects than bad product ideas.
When this makes sense: if you need full control, want to learn Linux ops, or plan to run multiple apps on one server with shared infrastructure. It is not worth it for a side project you built in five minutes with Cursor.
Deployment Comparison for Vibe-Coded Apps
| Platform | Best For | Deploy Time | Starting Price | Database | SSH Access |
|---|---|---|---|---|---|
| Vercel | Static sites, Next.js frontends | ~60s | Free | Add-on (KV, Postgres) | No |
| Netlify | Static sites, JAMstack | ~60s | Free | No | No |
| Cloudflare Pages | Static sites, edge performance | ~90s | Free | D1 (limited) | No |
| Railway | Full-stack, GitHub-first workflow | ~2-3 min | $5/mo + usage | Usage-based add-on | No |
| Render | Full-stack, managed PaaS | ~3-5 min | $7/mo | $7/mo extra | Paid plans only |
| InstaPods | Full-stack, CLI deploy, AI-built apps | ~5s | $3/mo flat | Included | Yes, all plans |
| Raw VPS | Full control, multiple apps | 1-4 hours | $4/mo | Self-managed | Yes |
Step 4: Handle Databases
AI coding tools have a strong preference for SQLite. Cursor and Claude Code generate SQLite-backed apps constantly because it is the simplest option — no external database server, just one file on disk. This works fine on your machine and causes real problems on certain hosting platforms.
The core issue: serverless platforms like Vercel and Netlify have ephemeral file systems. Your SQLite database file disappears on every deploy. If you are on one of those platforms with a SQLite-backed app, you need to either migrate to a hosted database or move to a platform with persistent file storage.
Here is the simplest decision path:
- If the AI used SQLite, deploy to any platform with persistent storage — a VPS, Railway with a persistent volume, or Render with a mounted disk. Do not migrate to Postgres unless you have a specific reason to.
- If the AI used Prisma or another ORM, check the connection string. Switching from SQLite to Postgres usually means changing one line in your config.
- If you need a hosted Postgres, Supabase’s free tier is the most popular choice among vibe coders. Neon is another strong option.
The WordPress Developer’s Cheat Sheet
If you’re coming from WordPress development (maybe you’ve been using InstaWP for staging sites) and vibe coding your first non-WordPress app, here’s the mental model:
| WordPress Concept | Vibe-Coded App Equivalent |
|---|---|
| Shared hosting (SiteGround, Bluehost) | Vercel, Netlify (for static only) |
| Managed WordPress (WP Engine, Kinsta) | Railway, Render (for full-stack) |
| VPS with cPanel | VPS with nginx (no cPanel equivalent) |
| FTP upload | CLI deploy or git push |
| wp-config.php | Environment variables (.env file) |
| MySQL database | SQLite, PostgreSQL, or Supabase |
| PHP runtime | Node.js or Python runtime |
| Plugins for features | npm packages or pip packages |
The biggest shift: WordPress hosting abstracts the server completely. With Node.js and Python apps, you’re closer to the metal. That’s why the deployment step feels harder – there’s no “one-click install” equivalent for a custom Express API.
The platforms listed above exist to close that gap. Pick the one that matches your stack and budget.
Which Deploy Path Should You Pick for Your Vibe-Coded App?
- Your app is static (React SPA, HTML/CSS/JS): Use Vercel or Netlify. They’re free and deploy in under a minute.
- Your app is full-stack Node.js or Python, and you want the fastest path: Use a CLI deploy tool. One command, live URL, done.
- Your app needs a database: Check if it’s SQLite (deploy anywhere with persistent storage) or Postgres (add Supabase or use a platform with built-in databases).
- You want full control and don’t mind the setup time: Rent a VPS and configure it yourself. Budget 2-4 hours for the first time.
- You’re prototyping and don’t want to pay anything yet: Vercel free tier for frontends, Railway’s $5 credit for full-stack, or Render’s free tier (accepts the cold start tradeoff).
The vibe coding workflow is build fast, deploy fast, iterate fast. If deployment takes longer than building the app, you’ve picked the wrong platform. Pick the deploy option that keeps the loop tight, your next idea is already waiting.
The Most Common Deployment Mistakes with AI-Generated Code
AI coding tools generate working code for localhost. They do not always generate code that works in production. These are the six patterns that cause the most trouble.
1. Hardcoded localhost URLs
AI tools generate code that talks to http://localhost:3000 or http://localhost:8080. This works in development but breaks immediately in production where your API lives at a different URL. Search your codebase for “localhost” and replace every hardcoded URL with an environment variable:
// Before — breaks in production
const API_URL = 'http://localhost:3000/api';
// After — works everywhere
const API_URL = process.env.NEXT_PUBLIC_API_URL || 'http://localhost:3000/api';2. Missing start scripts
Cursor sometimes generates a package.json without a proper start script. The app runs fine with npm run dev locally but has no production entry point. Make sure your package.json includes:
{
"scripts": {
"start": "node server.js",
"build": "next build"
}
}For Python, ensure you have a clear entry point. Most hosting platforms look for main.py, app.py, or a Procfile.
3. Secrets in the code
AI-generated code often includes placeholder API keys or hardcoded secrets. These need to be set as environment variables on your hosting platform, not committed to your repo. Common ones to check: database URLs, API keys for Stripe or OpenAI, JWT secrets, and SMTP credentials.
4. Building in development mode
React and Next.js apps need a production build. Deploying the dev server is slow and leaks debug information. Run npm run build before deploying, or confirm your hosting platform runs it automatically (most do).
5. Wrong Node.js version
Your local machine might run Node 22 but the hosting platform defaults to Node 18. If the AI used newer syntax or APIs, the app crashes silently. Add an engines field to package.json to lock the version:
{
"engines": {
"node": ">=20.0.0"
}
}6. CORS errors after deployment
Works on localhost, breaks in production. Classic. The AI probably set CORS to allow localhost origins only. Update your CORS config to include your production domain
app.use(cors({
origin: [
'http://localhost:3000',
'https://my-app.example.com'
]
}));Did You Know?
InstaWP lets you create WordPress staging sites that mirror your production environment. the same idea applies to any app you are testing before launch. Catching CORS errors, broken environment variables, and missing start scripts in a staging environment is significantly faster than debugging them on a live URL.
Test Before You Ship
One thing most deployment guides do not mention: the fastest way to catch the common mistakes above, hardcoded URLs, CORS errors, missing environment variables, is to test your app in a clean environment before pushing it to a public URL.
For WordPress-connected apps and WordPress-adjacent tooling, InstaWP gives you instant sandbox environments where you can spin up a clean site, test integrations, and verify your setup without touching production. Get started with $25 in free credits; no credit card required.
Keep Reading
- Best AI Coding Tools for WordPress Developers in 2026
- Headless WordPress Frontend – Build and Deploy Guide
Frequently Asked Questions
Can you deploy a vibe-coded app for free?
Yes, for static/frontend-only apps. Vercel, Netlify, and Cloudflare Pages all offer free tiers that handle React SPAs and HTML/CSS/JS sites. For full-stack apps with a backend (Node.js or Python), free options are limited – Render’s free tier sleeps after 15 minutes and Railway gives a one-time $5 credit. For persistent full-stack hosting, expect to pay $3-7/mo minimum.
How long does it take to deploy an AI-generated app?
It depends on the platform. Static hosting (Vercel, Netlify) takes about 60 seconds. PaaS platforms (Railway, Render) take 2-5 minutes including build time. CLI deploy tools can get a full-stack app live in under 10 seconds. A manual VPS setup takes 1-4 hours for someone doing it the first time.
Do I need Docker to deploy a vibe-coded app?
No. Most hosting platforms (Vercel, Railway, Render, InstaPods) detect your stack automatically from package.json or requirements.txt and handle the build process. Docker is optional and only useful if you need a custom environment or are deploying to a raw VPS where you want reproducible builds.
What’s the cheapest way to deploy a full-stack app with a database?
For apps using SQLite (common with AI-generated code), any platform with persistent file storage works – no separate database cost. InstaPods starts at $3/mo flat with databases included. Railway charges $5/mo plus usage. Render’s cheapest full-stack setup (web service + managed Postgres) runs $14/mo. A raw VPS from Hetzner costs around $4/mo but requires manual setup.