How to Deploy a Claude Code Project to GitHub and Vercel in Under 10 Minutes
Learn the exact steps to export a Claude Code or Claude Design project, push it to GitHub, and deploy it live on Vercel with automatic CI/CD.
From Code to Live in Minutes: What You Need Before You Start
If you’ve used Claude to generate a web project — whether it’s a full-stack app, a landing page, or a utility tool — you already know the fastest part is the code generation itself. The part that trips people up is getting that code off their machine and onto the internet.
This guide covers the exact steps to deploy a Claude Code project to GitHub and Vercel in under 10 minutes. No fluff, no detours. By the end, you’ll have a live URL, automatic deployments on every push, and a CI/CD pipeline that just works.
Prerequisites
Before you start the clock, make sure you have:
- A Claude Code project on your local machine (or exported from Claude’s artifact system)
- Node.js installed (v18 or later)
- Git installed and configured with your name and email
- A GitHub account
- A Vercel account (free tier is fine — sign up at vercel.com)
- The Vercel CLI installed globally (
npm install -g vercel)
If you’re missing any of these, set them up first. The 10-minute timer starts once your project is on disk and these tools are ready.
Get Your Claude Project onto Disk
Claude Code generates files inside its interface. Before you can push anything to GitHub, you need those files on your local machine.
If You Used Claude.ai Artifacts
Not a coding agent. A product manager.
Remy doesn't type the next file. Remy runs the project — manages the agents, coordinates the layers, ships the app.
Claude’s artifact panel lets you copy code directly. For multi-file projects, you may have received separate components for HTML, CSS, JavaScript, or framework-specific files like App.jsx and index.js.
Create a new folder for your project:
mkdir my-claude-project
cd my-claude-project
Paste each file into the correct location. For a typical React project Claude generates, the structure looks like:
my-claude-project/
├── public/
│ └── index.html
├── src/
│ ├── App.jsx
│ ├── main.jsx
│ └── index.css
├── package.json
└── vite.config.js
Make sure package.json is present with the correct dependencies. Claude usually generates this for you — double-check it’s accurate before moving on.
If You Used Claude Code (Terminal)
Claude Code runs directly in your terminal and writes files to disk. If you already ran a Claude Code session, your files are wherever you told it to write them. Navigate to that folder and confirm the structure looks right with ls -la.
Install Dependencies and Test Locally
Run a quick install and local build to catch any issues before pushing:
npm install
npm run dev
If the dev server starts and you can see your app at localhost:5173 (or whatever port your framework uses), you’re good to go. Fix any errors now — it’s faster to debug locally than troubleshoot a failed Vercel deploy.
Initialize Git and Push to GitHub
With your project working locally, it’s time to get it into version control.
Step 1: Initialize the Repository
Inside your project folder:
git init
git add .
git commit -m "Initial commit from Claude Code"
This stages every file and creates your first commit. If you have sensitive files (API keys, .env files), make sure you create a .gitignore before running git add .:
echo "node_modules/\n.env\n.env.local\ndist/" > .gitignore
git add .
git commit -m "Initial commit from Claude Code"
Never commit .env files to a public repository.
Step 2: Create a GitHub Repository
Go to github.com and click New repository. Give it a name that matches your project folder. Set it to public or private — Vercel works with both. Leave all other options unchecked; you’re pushing an existing repo, not initializing from scratch.
GitHub will show you the commands to push an existing repo. They look like this:
git remote add origin https://github.com/yourusername/my-claude-project.git
git branch -M main
git push -u origin main
Run those three commands. Refresh your GitHub page — your project should be there.
Deploy to Vercel
With your code on GitHub, Vercel deployment takes about two minutes.
Option A: Deploy via the Vercel Dashboard (Recommended for First Deploy)
- Go to vercel.com and log in.
- Click Add New → Project.
- Under Import Git Repository, connect your GitHub account if you haven’t already.
- Find your Claude project repo in the list and click Import.
- Vercel auto-detects the framework (React, Next.js, Vite, etc.). Review the build settings:
- Build Command: Usually
npm run build— leave as detected. - Output Directory: Usually
distfor Vite or.nextfor Next.js — leave as detected. - Install Command: Usually
npm install— leave as detected.
- Build Command: Usually
- Add any environment variables your project needs under Environment Variables.
- Click Deploy.
Everyone else built a construction worker.
We built the contractor.
One file at a time.
UI, API, database, deploy.
Vercel will pull your code, install dependencies, run the build, and deploy to a .vercel.app subdomain. This typically takes 30–90 seconds for a standard project.
Option B: Deploy via the Vercel CLI
If you prefer the terminal, you can deploy without touching a browser (after initial auth):
vercel login
vercel
The CLI walks you through linking to a project. Answer the prompts:
- Set up and deploy? → Yes
- Which scope? → Your account name
- Link to existing project? → No (first time)
- What’s your project’s name? → Enter a name
- In which directory is your code located? →
./(current folder)
Vercel detects your framework and confirms the settings. Hit enter to confirm, and your project deploys. The CLI outputs a live URL when it’s done.
Set Up Automatic CI/CD
This is the part that makes the whole setup worth it. Once GitHub is connected to Vercel, every push to your main branch triggers a new production deployment automatically.
How It Works
When you connected your GitHub repo to Vercel in the dashboard, Vercel installed a GitHub webhook on your repository. Every git push signals Vercel to pull the latest code, run a build, and — if the build succeeds — promote it to production.
There’s nothing to configure. It’s on by default.
Preview Deployments for Every Branch
Vercel also creates a unique preview URL for every pull request and non-main branch. This is useful if you’re iterating on features with Claude and want to share a live preview before merging:
git checkout -b new-feature
# make changes
git add .
git commit -m "Add new section"
git push origin new-feature
Open a pull request on GitHub. Within a minute, Vercel posts a comment on the PR with a preview URL. Anyone with the link can see the live version of that branch.
Add a Custom Domain (Optional)
From the Vercel project dashboard, go to Settings → Domains and add your domain. Vercel handles SSL automatically. If you’re using a registrar like Namecheap or Cloudflare, you’ll add a CNAME or A record pointing to Vercel’s servers. The UI walks you through the exact DNS values to set.
Common Mistakes and How to Fix Them
Even a straightforward deploy can fail if a few things are off. Here are the most common issues and their fixes.
Build Fails with “Missing Script: build”
Your package.json doesn’t have a build script. Claude sometimes generates projects without one if you didn’t specify a bundler.
Fix: Add this to your package.json scripts section:
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
}
Also make sure vite is in your devDependencies.
404 on Page Refresh (Single-Page App Issue)
If your project is a single-page app (React Router, for example), direct URL navigation and page refreshes return a 404. This is a Vercel routing issue for SPAs.
Fix: Create a vercel.json file in your project root:
{
"rewrites": [{ "source": "/(.*)", "destination": "/" }]
}
Commit and push this file. Vercel will re-deploy automatically and handle client-side routing correctly.
Environment Variables Missing in Production
- ✕a coding agent
- ✕no-code
- ✕vibe coding
- ✕a faster Cursor
The one that tells the coding agents what to build.
Claude-generated projects often reference environment variables like VITE_API_KEY. These are on your local machine in a .env file but not in Vercel.
Fix: In the Vercel dashboard, go to Settings → Environment Variables and add each variable. For Vite projects, variable names must start with VITE_ to be accessible in the browser. After adding, redeploy for the changes to take effect.
Large Node Modules Slow the Build
If your build takes more than three minutes, Claude may have included unnecessary packages.
Fix: Check package.json and remove any dependencies your app doesn’t actually use. Re-run npm install locally to verify nothing breaks, then push the cleaned-up package.json and package-lock.json.
Extending Your Deployed App with AI Capabilities
Once your Claude project is live, you might want to add features that go beyond what’s in the initial code — sending emails from a contact form, processing images, or triggering workflows based on user actions.
This is where MindStudio’s Agent Skills Plugin fits naturally into a developer workflow. It’s an npm SDK (@mindstudio-ai/agent) that gives any AI agent or application access to over 120 typed capabilities as simple method calls — things like agent.sendEmail(), agent.generateImage(), or agent.searchGoogle().
Instead of standing up your own email service, image processing pipeline, or search API, you drop in a few method calls and MindStudio handles the infrastructure — rate limiting, retries, authentication — behind the scenes. It’s a practical complement to what Claude Code produces: Claude generates the UI and application logic, and MindStudio handles the action layer.
For example, if Claude generated a lead capture form as part of your project, you could add automated email notifications in about 15 minutes using the plugin:
import MindStudio from '@mindstudio-ai/agent';
const agent = new MindStudio({ apiKey: process.env.MINDSTUDIO_API_KEY });
async function handleFormSubmission(formData) {
await agent.sendEmail({
to: 'you@yourcompany.com',
subject: 'New Lead Captured',
body: `Name: ${formData.name}\nEmail: ${formData.email}`
});
}
You can try MindStudio free at mindstudio.ai — no credit card required to get started.
Frequently Asked Questions
Does Vercel work with any framework Claude generates?
Vercel supports virtually every modern JavaScript framework — React, Next.js, Vue, Svelte, Astro, SvelteKit, Remix, and more. Claude Code most commonly generates projects in React (with Vite) or Next.js, both of which Vercel handles with zero configuration. If Claude generates a pure HTML/CSS/JS project with no framework, Vercel deploys that too — it treats it as a static site.
Do I need to pay for Vercel to deploy a Claude project?
No. Vercel’s Hobby plan is free and sufficient for personal projects, side projects, and prototypes. It includes unlimited personal projects, HTTPS, automatic deployments, and preview URLs. You only need a paid plan if you need team collaboration features, higher bandwidth limits, or custom SLAs.
Can I keep my GitHub repository private and still deploy to Vercel?
Yes. Vercel connects to your GitHub account via OAuth and can access both public and private repositories. Private repos on Vercel’s free plan have some limitations on team access, but for a solo developer deploying their own projects, private repos work without issue.
What if Claude generated a backend (Node.js API) along with the frontend?
One coffee. One working app.
You bring the idea. Remy manages the project.
If your Claude project includes API routes or a server component (common with Next.js), Vercel handles this through serverless functions automatically. Next.js API routes deploy as serverless functions with no extra configuration. If Claude generated a separate Express or Fastify server, you’d either need to restructure it as serverless functions or host the backend separately on a platform like Railway or Render.
How do I update my deployed app after Claude makes changes?
The workflow is simple: copy updated files from Claude into your local project, then run:
git add .
git commit -m "Update from Claude"
git push
Vercel picks up the push automatically and deploys the new version in about 60–90 seconds.
Can I use a custom domain with Vercel’s free plan?
Yes. Vercel’s free Hobby plan supports custom domains. You add the domain in the Vercel project settings, then update your DNS records at your registrar to point to Vercel. SSL is provisioned automatically. The only domain-related feature restricted to paid plans is advanced configuration like per-domain environment variables.
Key Takeaways
Getting a Claude Code project live is genuinely fast once the tools are in place. Here’s what matters:
- Test locally first. A build that fails on Vercel is slower to debug than one caught locally with
npm run build. - Commit a
.gitignorebefore your firstgit add. Never push.envfiles ornode_modules. - Vercel’s auto-detection handles most frameworks. You rarely need to touch build settings manually.
- CI/CD is automatic once GitHub is connected. Every push deploys — no manual steps needed.
- Preview deployments are free and instant. Use them when iterating with Claude on new features before merging.
- Environment variables live in Vercel’s dashboard, not in your repository. Add them there before your first deploy.
If you want to go further — adding AI-powered actions to your deployed app, building automated workflows around it, or connecting it to tools like Slack, HubSpot, or Google Sheets — MindStudio is worth looking at. The no-code builder and the Agent Skills Plugin both give you ways to extend what Claude builds without adding significant complexity to your codebase.