How to Move Your Vibe-Coded Site to Your Own Vercel Account
Bolt, Lovable, v0, Cursor. All of them can get a site up fast. Most of them also host it for you by default, on their own infrastructure, under their subdomain, attached to their billing. That's fine for testing an idea. It's not fine for a site you're about to put a real domain on, or that contains customer data, or that you need to still be running in eighteen months when the AI tool's free tier changes.
Moving to your own Vercel account takes about thirty minutes. Here's exactly how to do it.
What you need before you start
A GitHub account. A Vercel account (the free Hobby plan is enough). Your site's code, either exported from the AI tool, cloned from a git repo it created, or downloaded as a zip. That's it. You don't need to install anything locally unless you want to test the build before deploying.
If your site uses environment variables (a Supabase URL, a Stripe key, an OpenAI key), make a list of them now. They won't transfer automatically. Forgetting them is the most common reason a moved site breaks on first deploy.
Step 1: Get your code into GitHub
Vercel deploys from git. If your AI tool already created a GitHub repo (Bolt and Lovable often do), you may already be done with this step. Just check that the repo is connected to your own GitHub account, not the tool's.
If you're starting from a downloaded zip, unzip it, open a terminal in that folder, and run:
git init git add . git commit -m "initial commit" gh repo create my-site --public --push --source=.
The last line uses the GitHub CLI. If you don't have it, create the repo manually at github.com, copy the remote URL, then run:
git remote add origin https://github.com/your-username/my-site.git git push -u origin main
Step 2: Import the project into Vercel
Go to vercel.com, sign in, and click "Add New Project". Connect your GitHub account if you haven't already. You'll see a list of your repos. Find your site and click Import.
Vercel will detect the framework automatically. If your site is Next.js, React, SvelteKit, Astro, or plain HTML, it'll pick the right build settings without you needing to touch anything. If it guesses wrong, you can override the build command and output directory manually.
Don't click Deploy yet. Add your environment variables first.
Step 3: Add your environment variables
On the import screen, expand the Environment Variables section. Add every variable your site uses: API keys, database URLs, auth secrets, anything that was in a .env file or configured in the AI tool's settings panel.
The naming matters. If your code reads process.env.NEXT_PUBLIC_SUPABASE_URL, the variable in Vercel must be called exactly that. A mismatch will build successfully and then fail silently at runtime, which is harder to debug than a build error.
Variables prefixed with NEXT_PUBLIC_ are exposed to the browser. Everything else is server-only. Don't put secret keys in public variables. If your AI tool did this, fix it before you move.
Step 4: Deploy
Click Deploy. Vercel will run your build and give you a preview URL ending in .vercel.app. Open it. Check the site works, that any API calls succeed, and that no console errors are pointing at missing environment variables. If something's broken, the build logs in the Vercel dashboard will tell you what failed and why.
From here on, every push to your main branch will trigger a new deployment automatically. Every pull request or branch gets its own preview URL. That's the part that makes Vercel worth using over uploading files somewhere.
Step 5: Add your custom domain
In your Vercel project, go to Settings then Domains. Type your domain and click Add. Vercel will show you the DNS records you need to set at your registrar, usually an A record and a CNAME, or just a CNAME if you're adding a subdomain.
Log in to wherever you bought the domain (GoDaddy, Namecheap, Cloudflare, Google Domains), find the DNS settings, and add those records. DNS propagation takes anywhere from a few minutes to 48 hours depending on your registrar and TTL settings. Vercel will poll for the change and automatically provision an SSL certificate once it resolves.
If you're pointing a root domain (yourdomain.com rather than www.yourdomain.com), add both. Set www to redirect to the root, or vice versa, whichever you want as canonical. Vercel handles the redirect for you once both are added.
Common things that break
Missing environment variables account for most failed moves. The build succeeds, the site loads, the first API call returns a 500. Check the Vercel Function logs for the actual error.
Database connections whitelisted by IP. If your Supabase, PlanetScale, or Postgres instance has an allowlist, Vercel's outbound IPs are dynamic. You either need to allow all IPs or switch to connection string auth that doesn't rely on IP. Supabase works out of the box because it uses URL-based auth. Managed Postgres instances with IP restrictions need the allowlist updated.
Node version mismatches. If the AI tool built your project on Node 18 and Vercel defaults to a different version, the build may fail on native dependencies. Set the Node version explicitly in your package.json under the engines field, or in the Vercel project settings under General.
Hardcoded URLs pointing at the old hosting. AI tools sometimes generate code that references their own domain for assets or API routes. Search your codebase for the old .vercel.app or .lovable.app or .bolt.new URL and replace it with your own domain or a relative path.
What you've actually done
You now own the deployment. You can redeploy without touching the AI tool. You can add team members without adding them to someone else's platform. You're not dependent on the AI tool staying funded, staying free, or keeping their hosting terms the same. Your site is your site.
That's worth doing early, before you've pointed real traffic at it, before you've set up a payment provider that expects a specific callback URL, and before you've forgotten which tool built which version. The thirty minutes it takes is much cheaper than unpicking it later.
If you've moved the site and found that what the AI tool produced doesn't quite hold up under scrutiny (slow build times, brittle code, SEO that doesn't work, accessibility failures), that's a normal outcome. AI tools are good at getting something on screen fast. They're not building the same thing an experienced developer would build from scratch. Get in touch if you want a proper rebuild, or a landing page that's production-ready from day one.