Supabase advertises a $25/mo Pro plan. That number is real. It is also misleading.
Here is what a production-ready Supabase setup actually costs:
- Pro plan: $25/mo
- Compute upgrade (Micro is too weak for real traffic; Small at minimum, often Medium): $15–$60/mo
- Egress: $0.09/GB after 250 GB included
- Auth MAUs: free up to 100k, then $0.00325 per user — at 500k users that is $1,300/mo just for authentication
Realistic baseline for a production app with modest traffic: $110–120/mo before any user growth.
I spent a week going through Supabase GitHub issues, HN threads, and Trustpilot reviews to understand what paying customers actually complain about. Here is what I found.
1. Connection limits hit in production, not dev
Every Supabase compute tier caps Postgres connections. Small = ~60 total. Serverless runtimes (Vercel, Cloudflare Workers) spawn a new connection per request. You will hit this wall. The fix is upgrading compute — another pricing jump.
2. RLS has a well-known foot-gun
A security scan found over 10% of analyzed Supabase apps had tables fully readable via the public anon key. The root cause: RLS is opt-in with no safety net, and Supabase's SQL editor runs as a Postgres superuser, silently bypassing your policies. Bugs that work in dev fail silently in production.
3. Support on the $25 plan is basically Discord
Pro plan users have no SLA. The $599/mo Team plan is the first tier with a guaranteed response time.
4. The auth MAU wall
The most common reason teams leave Supabase: the auth pricing. At $0.00325 per MAU above 100k, a 500k-user app pays $1,300/mo just for authentication. The fix everyone reaches for: replace Supabase Auth with Clerk or Better Auth, keep the Postgres.
Which raises a question — if you're bringing your own auth anyway, why pay for the full Supabase bundle?
What I built
I built Basely — just the Postgres part, done right.
Schema-per-tenant on a shared cluster. Each project gets an isolated Postgres schema and a scoped role. No anon key. No shared superuser. No RLS foot-guns. Provisioning takes under a second.
Pricing: $15/mo flat for 10 projects. No egress fees. No MAU meter. No compute tier jumps.
What I focused on because of the research above:
- Daily backups included — pg_dump per project, gzipped, downloadable from the dashboard. Not theater. Just a working backup.
- Connection limits visible in the dashboard — color-coded bar per project. No surprises.
-
basely migrate supabase— one command to dump your Supabase schema and restore it into a Basely project. - MCP-native — Claude and Cursor can create projects, run migrations, and generate TypeScript types with no human steps.
bash
npx @basely-cli/cli migrate supabase \
--from "postgres://postgres:[password]@db.[ref].supabase.co:5432/postgres"
Top comments (0)