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.
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.
Supabase → DigitalOcean
Supabase paused your project or you hit the row limit. This guide moves your database, login system, and emails to a $6/mo server you own. Step by step, literally click by click.
Vercel → DigitalOcean
Vercel limits your functions to 10 seconds and charges $20/mo minimum. Move your Next.js app to a $6 server with automatic deploys on every git push.
File Storage → Backblaze B2
Supabase Storage and Vercel Blob charge $0.02+/GB. Backblaze B2 is $0.006/GB — and completely free when paired with Cloudflare. Your upload code barely changes.
Firebase → Self-Hosted
Replace Firestore, Firebase Auth, and Cloud Functions with PostgreSQL, custom JWT, and Node.js on a $6 VPS.
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.
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.
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.
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.
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.