Vercel

How to Deploy a Cursor or Bolt Project to Vercel

10 min read · Updated October 15, 2026 · Checked against official docs

Cursor builds code on your computer. Bolt builds it in your browser. Either way you end up with a normal web project (usually Vite or Next.js) that Vercel can build and host. The free Hobby plan works for personal projects.

Pick your route

RouteBest forUpdates automatically?
A. GitHub → VercelAnything you’ll keep improvingYes. Every push to main deploys
B. Vercel Drop (drag a .zip)A quick Bolt demoNo. Each new drop on vercel.com/drop creates a new project and URL
C. Vercel CLICursor users happy in a terminalWhen you run the command

If in doubt, use Route A. It’s the one that keeps working as your app grows. (Vercel: Deploying Git repositories)

Before any route: two minutes of prep

  1. Make sure it builds. In Cursor, run npm run build and fix any errors first. In Bolt, make sure the preview has no errors.
  2. List your environment variables. Write down every key your app reads (Supabase URL and key, Stripe keys, AI keys). You’ll add them on Vercel. Not sure which are public? Read environment variables and API keys explained.
  3. Keep secrets out of Git (Cursor). Check that .env and .env*.local are in .gitignore, then run git status before pushing and make sure no .env file with real keys is listed.

A1. Get your code onto GitHub

From Bolt (official steps from Bolt’s docs):

  1. Open your project and click the GitHub icon in the top-right corner.
  2. Click Log in to GitHub, then Authorize.
  3. Click Install the GitHub App, choose All repositories or Only select repositories, then Install & Authorize.
  4. Click the GitHub icon again, enter a repository name and click Create repository.

The new repository starts private, on a main branch, and Bolt commits automatically every time you make a change that doesn’t break the project. (Bolt: GitHub for version control)

From Cursor (or any local project): create an empty repository on GitHub, then in Cursor’s terminal:

git init
git add .
git status          # check: no .env files with secrets listed!
git commit -m "Initial commit"
git branch -M main
git remote add origin https://github.com/YOUR-USERNAME/YOUR-REPO.git
git push -u origin main

A2. Import it into Vercel

  1. In the Vercel dashboard, click New Project (top right).
  2. Pick your repository from the list. Connect GitHub first if Vercel asks.
  3. On the configure screen you can set the project name, Framework Preset, Root Directory, build output settings and Environment Variables. Vercel usually detects Vite or Next.js by itself. Only change the root directory if your app lives in a subfolder.
  4. Add your environment variables here now, then click Deploy.

From then on, every push to your production branch (usually main) creates a Production deployment, and pushes to other branches or pull requests get their own Preview URL.

Hobby plan gotcha: you can’t deploy a Hobby project from a private repository that belongs to a GitHub organization. Keep the repository under your personal GitHub account, make it public, or upgrade to Pro. (Vercel: Deploying Git repositories)

Route B: Vercel Drop (fastest Bolt demo)

  1. In Bolt, click the project title in the top left, then Export → Download. You get a .zip.
  2. Go to vercel.com/drop and drag the .zip onto the page. No need to unzip it.
  3. Choose your Vercel team, enter a project name and click Deploy. Vercel detects the framework, builds it and publishes it to production.
  4. Add your keys. Bolt’s export doesn’t include the values from its Secrets panel. Recreate them in your Vercel project’s environment variables and redeploy.

(Vercel: Bolt + Vercel Drop · Vercel Drop docs)

A dropped project has no Git connection. To update it later you can drop a new folder onto the project in the Vercel dashboard. For ongoing work, switch to Route A so every change deploys automatically and your URL stays the same.

Route C: Vercel CLI (Cursor)

npm i -g vercel     # install the CLI
vercel login        # sign in
vercel              # first run links the project and makes a preview deployment
vercel --prod       # deploy to production

Running vercel creates a Preview deployment and vercel --prod creates a Production one. vercel env pull downloads your Development variables into a local .env file. (Vercel CLI · Vercel: Environment variables)

Environment variables on Vercel

  1. Open the project and select Environment Variables in the sidebar.
  2. Add the Name and Value, then choose the environments (Production, Preview, Development).
  3. Click Save, then redeploy. Changes only apply to new deployments.

(Vercel: Managing environment variables)

Remember the prefix rule: a value that browser code needs must start with VITE_ (Vite) or NEXT_PUBLIC_ (Next.js), and so it becomes public. Never put a secret key behind those prefixes.

Add your custom domain

  1. In your project, open Settings → Domains and click Add Domain.
  2. Enter yourdomain.com. Vercel will suggest adding www.yourdomain.com too. Add both and redirect one to the other.
  3. Set DNS at your registrar to exactly what the dashboard shows:
    • Apex domain (yourdomain.com): an A record.
    • Subdomain (www, app): a CNAME record. Each project gets its own unique CNAME value.
    • Or switch the domain to Vercel’s nameservers. If you do, first copy your existing records over, especially MX (email) and any verification TXT records.
  4. If the domain shows an invalid configuration, look for conflicting A, AAAA or CNAME records on the same name and remove them.

CLI alternative: vercel domains add yourdomain.com your-project-name. (Vercel: Add a custom domain)

After the domain works: update your logins

  • Supabase Auth: set the Site URL to https://yourdomain.com and add your Redirect URLs. Supabase suggests http://localhost:3000/** for local dev and a wildcard pattern for Vercel previews. Use exact paths for production. (Supabase: Redirect URLs)
  • Google/GitHub sign-in: add the production callback URL in each provider’s console.
  • Stripe: point your live webhook at your production domain and store its signing secret as a server-only variable.

Troubleshooting first deploys

SymptomLikely cause and fix
Build fails on Vercel but works locallyA missing environment variable at build time, or an import whose upper/lower case doesn’t match the file name. Read the build log
A variable is undefined in the browserBrowser code needs the VITE_/NEXT_PUBLIC_ prefix. Only do that for public values, then redeploy
Changed a variable, nothing happenedRedeploy. Old deployments keep their old values
Refreshing a sub-page gives 404 (Vite single-page app)The app needs a rewrite to index.html. Ask your AI to “configure SPA routing for Vercel”
Domain stuck on invalid configurationConflicting DNS records. Match exactly what your project’s Domains page shows

Before you share the link, run through the pre-launch security checklist.


Official sources used: Vercel: Deploying Git repositories · Vercel Drop · Vercel: Bolt + Vercel Drop · Vercel: Environment variables · Vercel: Add a custom domain · Vercel CLI · Bolt: GitHub · Supabase: Redirect URLs. Checked October 2026.

Want the whole launch path in one place?

The Ship It Kit bundles copy-paste prompts, step-by-step deploy guides and a pre-launch checklist for Lovable, Bolt, Cursor and Replit apps. One-time $19. Launch price: $19 $17 until November 14, 2026.

Get the Ship It Kit, $19$17 See what's inside

Spotted something out of date? Platforms change their screens often. The official docs linked above are always the source of truth.