ai · deploy · tutorial

How to Ship to a VPS From Claude Code (Phone Included)

Prompt on your couch, deploy to a $5 VPS: Tailscale SSH, one git push, zero-downtime reload. The exact mobile-to-prod loop.

Frank E. Webner, Pony Express rider, around 1861
Frank E. Webner, Pony Express rider, around 1861 · Photo: Unknown author, public domain, via Wikimedia Commons

Your agent lives on your laptop, your users live elsewhere

The levelsio phone-shipping post broke brains for a reason: half his coding now happens from a phone, Termius open to a VPS, prompting Claude Code "like a goon." The replies are full of founders who tried it on normal codebases and ate it — one hallucinated migration, one leaked secret, one 2am checkout outage with no laptop in reach. The gap isn't the phone or the agent.

It's guardrails: vibe-coded apps break live users (why mobile shipping terrifies founders), while convention-locked ones absorb phone prompts safely.

The loop: couch → VPS → users in four moves

1. One private pipe. Tailscale on the VPS + phone gives you a WireGuard mesh with a stable 100.x.y.z address. Close port 22 to the public internet entirely — SSH only rides the mesh. Termius on iOS connects in one tap. No bastion, no key juggling on a touchscreen.

2. Claude Code lives on the server. SSH in once, run the agent there — not on the phone, not on the laptop. The repo it sees is the production checkout; context stays warm between sessions; big compiles use server RAM instead of dying on mobile. Prompt from the couch like everyone jokes about — the work happens on hardware that can take it.

3. Guardrails do the worrying. This is the BoringPush shape, and it's why the loop is safe from a phone: additive-only migrations (columns can never drop), thin routes (about 40 lines, access check first), a zero-warning lint gate before anything leaves. The agent can implement entire features end-to-end because the repo's written rules fence every decision that matters. Ship from anywhere on this Next.js stack — the rules travel, so the session can't go feral.

4. One push, zero downtime. When the agent says done (and the gate agrees):

Run bp deploy. It checks your code, builds, ships and waits for a health check before it finishes. Users keep getting pages while the new version comes up, and you are still on the couch.

Rollback is one command from the same phone (bp rollback --yes), and the Telegram/Discord ping tells you before users do. That closed loop — prompt, gate, push, ping, rollback — is what turns "coding from my phone" from a stunt into a daily driver, exactly as the mobile shippers describe it.

The Tuesday test drive: earn trust in one day

Don't migrate your life on day one — run the loop on something harmless:

One day, one small fix, one staged failure. After that the debate ends and the habit starts.

What the loop costs (the whole budget)

The entire mobile-to-prod loop adds exactly one bill to your life: the $5/mo VPS, and only if you don't already have one. Tailscale personal mesh is free, Termius has a free tier that covers SSH, your existing Claude subscription is the agent, and every script in this post — mesh setup, zero-downtime deploys, incident pings, nightly backups — ships inside the BoringPush repo you buy once.

No per-seat deploy tax, no CI minutes, no "phone tier." The cheapest production workflow in this price range is also the one that works from a hammock.

FAQ

Do I need Termius specifically?

No — any Tailscale SSH client works (Blink, Prompt, plain ssh from a laptop). Termius wins on iOS for key handling and snippet shortcuts for the deploy commands.

What if the agent breaks prod while I'm away from my laptop?

Three nets: the pre-push gate blocks bad code locally, PM2 keeps the old process until the new one passes, and the rollback is one pasted command. Worst case is a revert, not an outage.

Does this work over hotel/cafe wifi?

Yes — Tailscale punches a WireGuard tunnel out; you never expose inbound ports, and the mesh IP doesn't care what network you're on.

Why run Claude Code on the VPS instead of my Mac?

Warm production context, server-grade RAM for builds, and zero "works on my machine" drift — the agent edits the exact tree that deploys. Your Mac stays a thin client.

Is phone deployment actually faster, or just cool?

Both, for small fixes: support ticket → prompt → push → ping in minutes, no laptop boot, no context switch. For deep architecture work, the desk still wins — the loop doesn't care where you sit.

+ all the boring stuff (analytics, auth, SQLite ↔ Supabase, full marketplace, webhooks)

The Agent-First Shipping Kit

Command from your phone.

Built so autonomous AI agents build what you want without breaking what's already paying you.

$199

Get BoringPush

One-time payment · Lifetime updates · Unlimited projects.

Keep reading