For vibe coders who hit their limits

Your BaaS* is holding
you hostage.

* BaaS = Backend as a Service (Supabase, Firebase, PlanetScale...)

They pause your project. They cap your rows. They charge you $25/mo for a database that fits in 5MB. A $6 server does the exact same thing. And with Claude Code, you don't need to be a DevOps engineer to set it up.

PlatformTheir priceYour price
Supabase Pro$25/mo
$6/mo-76%
Vercel Pro$20/mo
$6/mo-70%
Firebase Blaze$30–$80/mo
$6/mo-80%+
PlanetScale$39/mo
$6/mo-85%
The Manifesto

You built the app.
Stop paying rent on it.

Supabase paused your project because you didn't touch it for a week. Vercel charged you overage because someone shared your link and it went slightly viral. Firebase's bill tripled because you forgot to add a rate limit.

Here's what they don't tell you: Supabase is just 4 things glued together. PostgreSQL (free). An auth system (50 lines of code). An email API ($0 for 3,000 emails/mo). A server ($6/mo). That's it. That's the whole product.

The only reason you're still paying them is because nobody sat down and showed you how to set it up yourself — step by step, click by click, in plain English.

That's what this site is.

Not docs. Not a tutorial for engineers. A guide written so that if you can vibe-code a Next.js app, you can move it off Supabase in an afternoon. With Claude Code doing the hard parts.

Pick your escape route

Every guide is written for the person who has never touched a Linux server. Literal steps. Exact commands. Claude Code does the coding.

Copy → Paste into Claude Code

Open Claude Code (type claude in your terminal, or use the VS Code extension). Copy one of these. Paste it. Follow what it says.

1. Plan the whole migration

I have a Next.js app using Supabase for auth and database. I want to move everything to a DigitalOcean droplet. I use supabase.auth.getSession() for auth and supabase.from() for database queries. First, explain what I need to replace (in simple terms). Then give me a step-by-step plan.

2. Replace the login system

Replace all my Supabase auth calls with a custom JWT system. I use: supabase.auth.signUp(), supabase.auth.signInWithPassword(), supabase.auth.getSession(), supabase.auth.signOut(). Use bcryptjs for passwords and jsonwebtoken for tokens. Store the token in localStorage as "app_token". Keep the same login/register UI I have now.

3. Replace the database calls

Replace all my supabase.from() database calls with postgres.js. Create a lib/db.ts file first. Then go through my code file by file and replace every supabase.from("table").select() with sql`SELECT * FROM table`, every .insert() with sql`INSERT...`, etc. Show me each file change one at a time.

4. Set up the server from zero

I just created a fresh Ubuntu 22.04 server on DigitalOcean with IP [YOUR_IP]. I need to set it up to run my Next.js app. Install: Node.js 20, PostgreSQL, Nginx, PM2. Configure the firewall. Start my app and make it accessible at http://[YOUR_IP]. Give me every command in order — I'll copy-paste them one by one.

Your stack. Your server. $6/mo.

Create a DigitalOcean account, spin up a droplet, open Claude Code, and follow the guide. That's the whole plan.