How It Fits Together
You type on your laptop, but the work happens on a rented Linux server (a VPS) that never sleeps. AI agents on that server write the code, save it to GitHub, and Vercel puts it on the internet at your domain.
- 01
Your laptop
Ghostty terminal
- 02
Tailscale
private network
- 03
Your VPS
Claude Code
- 04
GitHub
your code
- 05
Vercel
live on the internet
- 06
Your domain
GoDaddy DNS
Two things sit alongside all of it: Supabase holds your app data and user accounts, and 1Password holds every password and API key so nothing secret ever ends up in your code.
Why a VPS instead of just your laptop?
Coming from Path 1?
git clone your repos into ~/projects/. Copy your CLAUDE.md over too. New to all of this? Start with Path 1.Create the Accounts
Use one email address for all of them (ideally one on your own domain), turn on two-factor authentication everywhere, and save every login in 1Password as you go. If you already did the laptop path, you only need the two new accounts marked below.
Day 1: the core
| Account | What It's For | Cost |
|---|---|---|
| 1Password | Stores every password and API key. Set this up first. | ~$3–5/mo |
| Your identity for everything else. Google Workspace on your own domain is best. | Free, or ~$8/mo Workspace | |
| Claude (claude.ai) | The main AI. The subscription powers Claude Code. | $20/mo Pro → $100–200 Max |
| GitHub | Where all your code lives | Free |
| Vercel | Hosts your websites and apps. Sign up with GitHub. | Free (Pro $20/mo later) |
| GoDaddy | Your domain name and DNS | ~$12–25/yr per domain |
| Granola (granola.ai) | Records every meeting (Zoom, Meet, in person), transcribes it, and writes the notes. Sign up with your Google account. | Free tier, paid plans for more |
| Hetzner · new | Rents you the VPS | ~$8–30/mo |
| Tailscale · new | Private network between your laptop, phone, and VPS | Free |
Month 1+: when you build real apps
| Account | What It's For | Cost |
|---|---|---|
| Supabase | Database, user logins, file storage | Free (Pro $25/mo) |
| Anthropic Console (console.anthropic.com) | API key so your own apps can call Claude. Set a monthly spending limit the day you create it. | Pay per use |
| SendGrid | Sending email from your apps | Free tier |
| PostHog | See how people use your apps | Free tier |
| Stripe | Take payments | Per-transaction fees |
| Google Cloud | “Sign in with Google” and Google APIs for your apps | Free for most uses |
Only if you build mobile apps
| Account | What It's For | Cost |
|---|---|---|
| Apple Developer | TestFlight and the App Store | $99/yr |
| Google Play Console | Android releases | $25 one-time |
| Expo | Build tools for iOS and Android apps | Free tier |
| RevenueCat | In-app subscriptions | Free until you earn real revenue |
Set Up Your Computer
Your laptop stays light. It's a window into the VPS, not where the code lives. (These steps are for a Mac. On Windows, use Windows Terminal instead of Ghostty; everything else is the same.)
| Install | Why |
|---|---|
| Ghostty (ghostty.org) | Fast, clean terminal. This is where you'll spend your day. |
| Homebrew (brew.sh) | Installs everything else on a Mac |
| Tailscale app | Connects your Mac to the VPS privately |
| 1Password app + browser extension | Fills in logins everywhere |
| Claude desktop app | Chat, research, and connectors to Gmail, Calendar, Drive |
| Granola (granola.ai) | Records and transcribes your meetings (Zoom, Meet, in person) and writes the notes. Claude can read them later. |
| Xcode (only for iOS apps) | Apple requires a Mac to build iPhone apps |
# Homebrew (follow the prompts it prints at the end)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Apps
brew install --cask ghostty 1password claude
# Tailscale: download the Mac app from tailscale.com/download
# Make an SSH key (press Enter at every prompt)
ssh-keygen -t ed25519
cat ~/.ssh/id_ed25519.pub # copy this; Hetzner asks for it nextRent and Secure the VPS
- 1In Hetzner Cloud, create a server: Ubuntu 24.04, 4 vCPU / 8 GB RAM is plenty to start (mine is 8 / 16 GB after a year). Paste your SSH public key when it asks.
- 2Copy the server's IP address and connect from Ghostty.
- 3Create your own user, install Tailscale, then lock the front door so the server only accepts connections over Tailscale.
ssh root@YOUR_SERVER_IP
# Create your everyday user and give it your SSH key
adduser yourname
usermod -aG sudo yourname
rsync --archive --chown=yourname:yourname ~/.ssh /home/yourname
# Updates + firewall
apt update && apt upgrade -y
ufw allow OpenSSH && ufw enable
# Tailscale: prints a link, open it and log in
curl -fsSL https://tailscale.com/install.sh | sh
tailscale up
tailscale ip -4 # note this 100.x.x.x addressHost vps
HostName 100.x.x.x # the Tailscale IP from above
User yournameNow ssh vps gets you in from anywhere, including your phone (Termius on iPhone, with Tailscale on). Once that works, ask Claude to help you close public SSH so only Tailscale can reach the server.
Install the Tools on the VPS
Everything below runs on the VPS after ssh vps. After this step you can ask Claude Code to install anything else for you.
sudo apt install -y git tmux ripgrep jq python3 python3-pip unzip build-essential gh
# Node.js 22 (most AI tools need it)
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
# Let npm install tools without sudo
mkdir -p ~/.npm-global && npm config set prefix ~/.npm-global
echo 'export PATH="$HOME/.npm-global/bin:$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc# Claude Code (Anthropic): your main tool
curl -fsSL https://claude.ai/install.sh | bash
# Deploy tools
npm install -g vercel# Browser automation, so agents can test your sites
npm install -g playwright && npx playwright install --with-deps chromium
# Supabase CLI runs on demand, no install needed
npx supabase --helpAlso install the 1Password CLI (op) by following developer.1password.com/docs/cli, or just ask Claude Code to do it.
| Tool | What It Does |
|---|---|
| git + gh | Save your work and talk to GitHub |
| tmux | Keeps your sessions running when you disconnect |
| Node.js + npm | Runs almost every modern web tool |
| Python | Scripts and scheduled jobs |
| claude | Claude Code, your AI coding agent |
| vercel | Deploy from the terminal |
| playwright | A real browser that agents can drive |
| op | Pull secrets from 1Password when a script needs them |
Connect Your Accounts
This is what turns an AI chat into an AI that can do things. Each login below happens once, on the VPS.
Sign in to each tool
| Run This | It Connects |
|---|---|
claude | Your Claude subscription (it opens a login link) |
gh auth login | GitHub |
vercel login | Vercel |
git config --global user.name / user.email | Your name on every commit |
Google: Gmail, Calendar, Drive
- 1In claude.ai, open Settings → Connectors and connect Gmail, Google Calendar, and Google Drive.
- 2Claude Code picks up those same connectors when you're logged in with the same Claude account.
- 3Try it:
claudethen “What's on my calendar this week?”
Granola: your meetings
Install the Granola desktop app and sign in with Google so it can see your calendar. It records and transcribes each meeting and writes the notes. Then connect Granola to Claude (claude.ai → Settings → Connectors). Now you can ask “What did we decide in Tuesday's call?” or “Draft a follow-up email from this morning's client call.”
GitHub, Vercel, Supabase, Stripe inside Claude
In Claude Code, type /pluginand install the official GitHub, Vercel, Supabase, and Stripe plugins. Each asks you to log in once. After that, “why did my last deploy fail?” or “add a column to the users table” just works. Any other service with an MCP server connects the same way:
claude mcp add --transport http <name> <server-url>
claude mcp list # see what's connectedAPI keys: GoDaddy, Anthropic, and the rest
Some services only offer an API key. The pattern is always the same:
- 1Create the key in the service's developer dashboard (GoDaddy: developer.godaddy.com/keys).
- 2Save it in 1Password straight away, in a vault just for the VPS.
- 3Create a 1Password service account that can read only that vault, and put its token on the VPS in a file only you can read. The server can now fetch keys without you there to unlock anything.
- 4Tell Claude which 1Password item holds the key. It fetches the key when it needs it and never writes it into your code.
Heads up on GoDaddy
Write the Operating Manual
Claude Code reads a file called CLAUDE.md at the start of every session. Put your house rules there once and every session follows them. Mine is hundreds of lines after a year. Start with this:
# How I work
- All code lives on this VPS in ~/projects/. Pull before starting, commit and push when done.
- Deploy websites to Vercel with --prod unless I say otherwise.
# Secrets
- Never hardcode secrets. Every key lives in 1Password.
- When I give you a new key, save it to 1Password before using it.
# Safety
- Never send an email, post publicly, or spend money without my explicit yes. Draft first.
- Never delete data or overwrite files without showing me what's there first.
- Never run "crontab <file>". Add cron jobs one line at a time.
# Accounts
- DNS: GoDaddy via API, key in 1Password
- Database: SupabaseWhen Claude makes a mistake, don't just fix it. Say “add a rule to CLAUDE.md so this doesn't happen again.” That habit does more for you than anything else in this guide.
Add Skills and Plugins
CLAUDE.md sets the rules. Skillsteach the moves. A skill is a written playbook that Claude loads only when the task calls for it, like “interview me about this plan” or “review this before I ship.” A plugin is a bundle of skills you install in one step. These are the ones I keep installed once I start building real apps.
| Skill | What It Does | Reach For It When |
|---|---|---|
| grill-me | Interviews you about your plan, one question at a time, until every decision is made | Before you build anything. Type /grill-me. |
| tdd | Writes a failing test first, then the code that makes it pass | Fixing a bug, or building something that must not break |
| improve-codebase-architecture | Finds tangled code and proposes cleanups that make it easier for AI to work in | A project has grown for a few weeks and changes keep breaking things |
| agent-browser | Lets your agents open a real browser, click around, fill forms, and screenshot your site | You want Claude to check its own work in the browser |
| Evolving Skills | Build your own skills that record what they learn, then fold those lessons back in with /evolve | You catch yourself explaining the same workflow twice |
| Compound Engineering (plugin) | A full brainstorm → plan → build → review loop that writes down what it learned for next time | Bigger features that deserve a plan and a proper review |
# Skills: each command asks which agents to install to
npx skills@latest add mattpocock/skills -g --skill grill-me tdd improve-codebase-architecture
npx skills@latest add vercel-labs/agent-browser -g
npx skills@latest add https://github.com/dodo-digital/evolving-skills/tree/main/plugins/evolving-skills/claude-skills -g
# The browser those agents drive
npm install -g agent-browser
agent-browser install/plugin marketplace add EveryInc/compound-engineering-plugin
/plugin install compound-engineering@compound-engineering-pluginRestart Claude Code afterward, then type /to see your new skills. You rarely need to call them by name: say “grill me on this plan” and Claude picks the right one.
Only install skills you trust
Where they come from
- grill-me, tdd, improve-codebase-architecture: github.com/mattpocock/skills
- agent-browser: github.com/vercel-labs/agent-browser
- Evolving Skills: github.com/dodo-digital/evolving-skills
- Compound Engineering: github.com/EveryInc/compound-engineering-plugin
Your First Week
The daily routine:
1. Open Ghostty
2. ssh vps
3. tmux new -s work (or tmux attach to pick up where you left off)
4. cd ~/projects/my-thing
5. claude and say what you want in plain English
| Day | Do This |
|---|---|
| 1 | Create the Day 1 accounts. Install the Mac apps. |
| 2 | Rent the VPS, secure it, install the tools, run claude. |
| 3 | Ask Claude: “Build me a one-page site for [your thing] with Next.js, put it on GitHub, and deploy it to Vercel.” |
| 4 | Ask Claude to point your domain at it. Connect Gmail and Calendar. |
| 5 | Start a fresh claude session in the same folder and ask it to review what was just built. A clean session catches what the first one missed. |
| 6–7 | Write your CLAUDE.md and add the skills. Run /grill-me on your first real app idea. Then read the 12-month journey for what comes next. |
What It Costs
| Starting Out | A Setup Like Mine | |
|---|---|---|
| Claude | $20 (Pro) | $100–200 (Max) |
| VPS | ~$8 | ~$30 |
| Hosting + database | $0 (free tiers) | $45 (Vercel Pro + Supabase Pro) |
| 1Password + Google Workspace | ~$11 | ~$11 |
| Domains | ~$2 | Depends how many you collect |
| Monthly total | ~$40 | ~$210–310 |
Add $99/yr for Apple and $25 once for Google Play if you ship mobile apps. Prices are approximate as of 2026. Start with the left column; you'll know when you need the right one because you'll hit the limits.