Materials · Setup
Get Ready to Deploy
One pasted command takes a stock laptop — no git, no Node, nothing — to a working Claude Code + Node + pnpm + Vercel dev stack. It pulls every tool from its official source, verifies each download, and prints a version check at the end. Safe to re-run if a step fails.
New to all this? You’re in exactly the right place. “Deploy” just means putting your app live on the internet so anyone can visit it. You don’t need to understand every tool yet — paste one command, follow the steps in order, and we’ll explain each piece as it comes up. Nothing here can hurt your computer, and every step is safe to re-run if it hiccups.
A few words you’ll see: Terminal / PowerShell are the apps where you type commands instead of clicking. CLI means “command-line tool” — a program you run by typing its name. That’s the whole vocabulary you need to start.
The tools below aren’t random — they’re one pipeline. Here’s the path your code takes from your laptop to live on the internet.
NEXT_PUBLIC_* — shipped to the browser (safe to expose)server-only — secret, never sent to the browserThese four lines live in .env.local on your laptop, and in your Vercel project’s Environment Variables in production.
Before you paste anything
Never run a script you haven’t read
A curl … | bash line runs whatever lives at that URL on your machine, with your permissions. Don’t take ours — or anyone’s — on faith. The fastest way to check it: open Claude Desktop, paste the script’s URL, and ask Claude to read it back to you and flag anything unsafe.
Paste this into Claude Desktop:
Review this install script and flag anything unsafe before I run it:
https://aimhuge.com/setup/mac.sh
(Windows: https://aimhuge.com/setup/windows.ps1)Prefer to read it yourself? Open the raw script: mac.sh · windows.ps1. This habit isn’t just for us — do it with every install script you’re ever handed.
macOS
Open Terminal (Cmd-Space → “Terminal” → Enter) and paste:
bash <(curl -fsSL https://aimhuge.com/setup/mac.sh)We use bash <(curl …) rather than curl … | bash so Homebrew’s password prompt can still read your keyboard.
Windows 11
Open PowerShell (Start → “PowerShell” → Enter — the prompt starts with PS) and paste:
irm https://aimhuge.com/setup/windows.ps1 | iexIf you’re in the old Command Prompt (no PS), open PowerShell instead — this command is PowerShell-only.
What the script installs
| Tool | macOS | Windows | Why |
|---|---|---|---|
| Git | Xcode CLT | winget | Version control — and what un-bricks the “can’t clone” problem. |
| Homebrew | ✓ | — (uses winget) | Package manager. |
| Node.js (LTS) | ✓ | ✓ | Runs the JS/TS stack. |
| pnpm | ✓ | ✓ | This repo’s package manager. |
| Vercel CLI | ✓ | ✓ | Deploys. |
| Supabase CLI | brew | GitHub + checksum | Migrations + type-gen against your hosted Supabase project (SQL Database + Auth). No Docker. |
| Claude Code | npm | npm | The AI dev environment — installed from npm, integrity-verified. |
| Resend | — (npm + key) | — (npm + key) | Email API — nothing to install; it's an npm package plus a RESEND_API_KEY. |
| Dictation | Superwhisper | Wispr Flow / Win+H | Hands-free prompting. |
Prefer to read them first? Grab the raw scripts: mac.sh · windows.ps1
Get the starter repo
This is the repo everything below assumes you have. It’s a working Next.js 16 + Supabase + Vercel app with Claude Code already wired in — it ships a CLAUDE.md, an .env.example, tests, Supabase migrations, and the /done, /commit and /lint-fix skills in .claude/skills/. Run the setup command above first (it installs git), then clone:
git clone https://github.com/fotoflo/aimhuge-training-starter.git
cd aimhuge-training-starter
pnpm installSee the deployed result first: starter.aimhuge.com · browse the code on GitHub. Everything from here runs inside this folder.
Get your keys into .env.local
The script installs the tools; these keys connect your app to the services it talks to. Create a few free accounts, copy one value from each, and paste them into a file called .env.local in your project root. It’s gitignored — it never gets committed.
What’s an environment variable?
A named value your app reads at runtime instead of hard-coding it — usually a secret like an API key, written one per line as NAME=value. Keeping them in .env.local (rather than in your code) means the secrets never get committed to GitHub, and you can point at different values locally vs. in production — env is just short for “environment.”
Start from the example file:
cp .env.example .env.local- 1GitHub — hosts your code and is how you sign into Vercel and Supabase. You already have this if you cloned the repo. For in-app “Sign in with GitHub”, create an OAuth app (Settings → Developer settings → OAuth Apps) and paste its Client ID + Secret into Supabase → Authentication → Providers — those live in Supabase, not
.env.local. - 2Vercel — sign up with your GitHub account, then authenticate the CLI with
vercel login(same asclaudeandsupabase login). There’s no Vercel key in.env.local— but when you deploy, add the four keys below under Project → Settings → Environment Variables. - 3Supabase — create a project, then open Project Settings → API and copy three values:
NEXT_PUBLIC_SUPABASE_URL← “Project URL”NEXT_PUBLIC_SUPABASE_ANON_KEY← the “anon / public” keySUPABASE_SERVICE_ROLE_KEY← the “service_role” key (secret — server only)
- 4Resend — sign up, go to API Keys → Create API Key, and copy it once (it’s only shown one time) into
RESEND_API_KEY. - 5Spaceship — only if you still need a domain. Cheap domains, and it has a DNS API so you (or Claude) can automate the records. Buy the domain, then in the API Manager create a key →
SPACESHIP_API_KEY+SPACESHIP_API_SECRET. Then point its nameservers at Vercel and add Resend’s DNS records.
Your finished .env.local looks like this:
# Supabase -> Project Settings -> API
NEXT_PUBLIC_SUPABASE_URL=https://YOUR-PROJECT.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGci... # "anon / public" key
SUPABASE_SERVICE_ROLE_KEY=eyJhbGci... # "service_role" - server only, keep secret
# Resend -> API Keys
RESEND_API_KEY=re_xxxxxxxxxxxxxxxx
# Spaceship (optional) - only if you bought your domain there + want DNS automation
SPACESHIP_API_KEY=xxxxxxxxxxxxxxxx
SPACESHIP_API_SECRET=xxxxxxxxxxxxxxxxRestart pnpm dev after editing so it picks up the new values. Never commit .env.local — and in production, set the same keys in Vercel’s Environment Variables.
Run it locally, then ship it
With the tools installed and your keys in place, start the dev server:
pnpm devOpen the URL it prints (usually http://localhost:3000). If the page loads, your whole stack works — that’s your smoke test.
Now put it on the internet. Log in once, then deploy from the project folder:
vercelFollow the prompts — Vercel links the repo, builds it, and hands you a live URL. That’s a “deploy”: your app, on the internet, for anyone to visit. Add the same .env.local values under Project → Settings → Environment Variables so production has them too, then vercel --prod when you’re ready to ship for real.
If something breaks
Open a fresh terminal so all PATH changes load, then run:
claude doctorIt checks the install and PATH and tells you exactly what’s wrong. If claude still isn’t on your PATH, reinstall it straight from npm:
npm install -g @anthropic-ai/claude-codeNow make Claude Code yours
The stack is installed — here’s how we tune Claude Code itself. Each of these is a small, public add-on you can drop in today.
Status line
A two-row status line
Turn the JSON Claude Code feeds you into two dense rows — branch, model, context %, tokens, diff size, and how much of your 5-hour and weekly budget is left before the next reset. Install it as a skill in one step.
Build the status lineSkill
The /done skill
Wrap up every session cleanly — update docs, fix lint, run tests, commit with a meaningful message, and print a productivity report. Runs its phases as parallel subagents.
Read the walkthroughGitHub
The whole skills repo
Every skill we use, public and ready to clone: /done, /commit, /lint-fix, /weekly, /architecture, /update-docs, and the status line. Symlink them into ~/.claude/skills/ and they’re live.
Browse the repoWant this rolled out to your team?
The AimHuge workshops cover Claude Code setup, skills, and workflows end to end — your whole team on the same stack in an afternoon.
Book a 30-minute call