This guide installs Claude Code, sets up two free accounts, and gives you one prompt. Paste it into a terminal window and Claude Code writes the app, creates the database and puts it online.
Use the same Google account for both. Each one takes about a minute and neither asks for a card.
Don't skip the GitHub connection. On the free Hobby plan, Vercel only deploys code pushed by the GitHub account connected to it, so without this the build finishes but the app never goes live.
These are the two standard tools the build runs on. If you already have them, skip to the check at the end of this step.
Open Terminal (press Command and Space, type Terminal, press Return). Paste this to install Git, and click Install in the window that appears:
xcode-select --install
Then download the LTS installer from nodejs.org and run it. On Linux, install git and nodejs with your package manager instead.
Open PowerShell (click Start, type PowerShell, press Enter) and paste:
winget install OpenJS.NodeJS.LTS winget install Git.Git
Close the window, open a new one, and check that both answer with a version number. Node needs to be version 20.19 or newer.
node --version && git --version
node --version; git --version
One command. It installs Claude Code and keeps it up to date from then on.
curl -fsSL https://claude.ai/install.sh | bash
irm https://claude.ai/install.ps1 | iex
When it finishes, open a new window and confirm it prints a version number:
claude --version
This makes a Projects folder in your home folder and starts Claude Code inside it. Claude Code creates your app's own folder in there.
mkdir -p ~/Projects && cd ~/Projects && claude --dangerously-skip-permissions
mkdir -Force $HOME\Projects | Out-Null; cd $HOME\Projects; claude --dangerously-skip-permissions
The first time, your browser opens so you can sign in with your Claude account. Back in the terminal, say yes when it asks whether you trust the folder, and accept the notice about running without permission checks.
What that long flag does. --dangerously-skip-permissions lets Claude Code run every command without asking you first. That is what makes the build hands-off, and it also means nothing reviews its actions. Use it for this build, in this folder.
Want a safety net instead? Start with plain claude. Its default mode still skips routine questions but checks each action in the background, so it may pause for your OK at steps like the final deploy.
The prompt below tells Claude Code how to work. Your design tells it what to build. Fill in the fields and the two are combined into one prompt.
If your design is spread across a conversation, paste this into the chat or Cowork task where you designed the app, then copy the answer into the "Your app" field below.
Write the complete build spec for this app as one document a developer could build from with no other context. Include: what the app is for and who uses it; every screen and what is on it; every feature and how it behaves; the data model (tables, fields, relationships); sample data; the look and feel; and all code we have already written, in full. Do not summarize or leave anything out.
Still needed: the app name, the GitHub repository, your app spec. The highlighted parts of the prompt show where each one goes.
# Build and deploy my app, start to finish You are developing my app in Claude Code. I already designed it in Claude chat and Cowork, and the full spec is at the bottom of this prompt. Take it from nothing to a live web address in this one session. ## My details - App name: [YOUR APP NAME] - Project name: [your-app-name] (use this exact name for the folder, the Vercel project and the Neon project) - GitHub repository, already created: [owner/repository] ## Rules for this session - Run every command yourself. Do not ask me for permission or confirmation, and do not ask me questions. Where the spec leaves something open, choose a sensible default and list it in your final report. - Do not stop until the app is live and you have loaded its public address yourself. Do not end your turn to give progress updates; keep a task list and move straight to the next step. When a command fails, read the error, fix the cause and retry. - Browser sign-ins are the only thing I do. When a login command opens my browser, tell me in one line which service to approve, then continue as soon as it succeeds. If a login cannot complete from your shell, give me the exact command to type with the `!` prefix and continue once it works. - Vercel and Neon use one and the same Google account. Check who is signed in with `vercel whoami` and `neon me`. - Free plans only: Vercel Hobby and Neon Free. Do not buy a domain, start a trial or upgrade anything. - Never print connection strings or tokens in the chat and never commit them. Local secrets go in `.env.local`, which must be listed in `.gitignore`. - Command flags change between CLI versions. If a flag is rejected, run the command with `--help` and adapt. ## Steps 1. **Check the basics.** Confirm `git`, `node` (20.19 or newer) and `npm` run. Install anything missing with the system package manager. 2. **Connect to GitHub.** Use the GitHub CLI, `gh`, and install it if it is missing. If `gh auth status` shows I am not signed in, run `gh auth login --web --git-protocol https`. Confirm the repository with `gh repo view [owner/repository]`. If git has no user name or email set, set them from my GitHub account, using my GitHub noreply email, so that Vercel accepts my commits. 3. **Create the project directory.** Clone the repository into a new folder named `[your-app-name]` inside the current directory and do all the work inside it. If the repository already contains code, build on it rather than starting again. 4. **Install the Vercel and Neon CLIs.** If `vercel` is missing, run `npm i -g vercel@latest`. If `neon` is missing, run `npm i -g neon@latest`. Sign in with `vercel login` and `neon login` where needed. 5. **Create the database without asking.** Create a new Neon project named `[your-app-name]` with `neon projects create`. Get its pooled connection string with `neon connection-string` and save it in `.env.local` as `DATABASE_URL`. Save the direct, unpooled one as `DATABASE_URL_UNPOOLED` for migrations. 6. **Build the app.** Build everything in the spec: every screen, every feature, real data. No placeholder pages and no "coming soon". If the spec names a tech stack, use it. If it does not, use Next.js (App Router) with TypeScript and Tailwind CSS, and Neon Postgres through Drizzle ORM. Create the database schema, run the migrations against Neon, and add seed data only where the spec calls for it. 7. **Prove it works on this computer.** Run the type check, the linter and a production build (`npm run build`) and fix every error. Start the app and request its main pages to confirm they respond and read from the database. 8. **Create the Vercel project and link GitHub.** Create a Vercel project named `[your-app-name]` (`vercel project add [your-app-name]`) and link this folder to it (`vercel link --yes --project [your-app-name]`). Add every environment variable the app needs for production, preview and development with `vercel env add`, piping each value in through stdin; development needs its own command. Then connect the GitHub repository with `vercel git connect --yes`. If Vercel reports that it has no access to the repository, give me this link to grant it, then continue: https://github.com/apps/vercel/installations/new 9. **Ship it.** Commit the work with clear messages and push to `main`. The push starts a production deployment on Vercel; follow it until it is ready (`vercel ls`, then `vercel inspect <deployment-url> --wait`). If no deployment starts from the push, deploy with `vercel --prod`. 10. **Check the live app.** The free domain is the project's `.vercel.app` address. Load it, confirm the pages render and the database works in production, and fix and redeploy until they do. 11. **Report.** Add a short `README.md` covering what the app is and how to run it locally. Then give me: the live address, the GitHub repository address, the Vercel project name, the Neon project name, what you built, each default you chose, and anything in the spec that is not working yet. ## App spec [PASTE YOUR APP SPEC AND ANY CODE YOU ALREADY HAVE HERE]
Click Copy prompt above, click into the terminal window where Claude Code is waiting, paste, and press ReturnEnter.
.vercel.app address, what was built and anything that still needs attention.If it stops before the app is live, type continue and press ReturnEnter.
Type what you want changed in the same window. To come back another day, open a new window and run this, then describe the change. Everything it pushes to GitHub goes live on its own.
cd ~/Projects/your-app && claudecd $HOME\Projects\your-app; claudeClose the window and open a new one, then try claude --version again. A window that was open during the install doesn't know about it yet.
Type the login yourself inside Claude Code by putting an exclamation mark first, for example ! vercel login, ! neon login or ! gh auth login. Finish it in the browser, then type continue.
This is the GitHub connection from step 1. In Vercel, open Settings, then Authentication, and make sure the GitHub account that owns your repository is connected. Then tell Claude Code: GitHub is connected to Vercel now. Redeploy.
Open github.com/apps/vercel, choose Configure, add the repository, then type continue in Claude Code.
Use Download as a file in step 5 instead. Move the downloaded BUILD.md into your Projects folder, then type this into Claude Code: Read BUILD.md and carry out everything in it.
Describe what you see and what you expected, in plain words, in the same Claude Code window. It fixes the code and redeploys.