Supabase: PostgreSQL with Batteries Included
The Good News
Supabase is basically PostgreSQL with a REST API and real-time subscriptions. If you know SQL, you'll feel at home. If you're coming from NoSQL hell, prepare to remember why relational databases exist.
Performance Reality
I've pushed Supabase to around 18K concurrent users (maybe 22K during Black Friday) before getting connection pool exhausted
errors. The problem wasn't Supabase - it was my dumbass JOIN query across 5 tables that looked fine in development but murdered the connection pool in production. PostgreSQL lets you write actual joins, but just because you CAN doesn't mean you should without proper indexing.
Production War Stories
We migrated from Firebase to Supabase and it took 3 months, not the "few weeks" everyone promises. Firestore's document model doesn't map cleanly to SQL relationships. Budget way more time than you think.
The migration took forever, but once we finished, our reporting queries went from 15-second nightmares to 2-second wins. Actually worth the pain.
Cost Reality Check
Pro plan is $25/month, which is reasonable until you factor in storage costs of $0.125/GB after your 8GB limit. Adds up fast if you're storing images or files. But honestly, it's still cheaper than Firebase if you're doing any real work.
Firebase: The Roach Motel (Easy to Get In, Hell to Get Out)
For Mobile? No Contest
Firebase is bulletproof for mobile apps. The SDKs are rock solid and offline sync just works. If you're building iOS/Android first, this is your answer.
Firestore's Weird Query Hell
Firebase real-time is black magic - it just works. But Firestore's query limitations will drive you insane. Want to query on multiple fields? Nope, create a composite index. Want to do a simple NOT IN query? Good fucking luck. You'll end up writing horrible client-side filtering code.
Pricing Surprise Party
Firebase billing will fuck you sideways. That pricing calculator? Might as well use a magic 8-ball. We got hit with an $847 bill at 3am on Saturday because our real-time listener got stuck in a loop - kept reading the same 50 documents over and over again. 2.3 million document reads in 6 hours. The worst part? Firebase doesn't have circuit breakers to stop runaway queries. You just get fucked and billed for it.
Vendor Lock-in Reality
Firebase gets you hooked with convenience, then the bills destroy your budget. Every database read costs money, and your app reads way more than you think. Migrating off Firebase? Hope you like rewriting everything. It's designed to be a roach motel.
Appwrite: The Underdog with Potential
What They're Trying to Do
Appwrite wants to be everything to everyone - web, mobile, server. It's like Firebase but with more database options and better self-hosting. They bumped pricing from $15 to $25/month as of September 2025, which tells you they're burning cash trying to catch up.
The Good Parts
Credit where it's due - unlike Firebase's Firestore weirdness, Appwrite lets you choose your database. Want MongoDB? Sure. MySQL? Fine. The SDKs are decent and the admin panel doesn't suck. Self-hosting is actually well documented, unlike some platforms.
The Reality Check
Appwrite is fighting an uphill battle. Firebase has mobile locked down, Supabase has the PostgreSQL crowd, and PocketBase has the indie developers. Appwrite's trying to be in the middle of everything, which means they're not the best at anything specific.
When to Use It
If you need multi-database support or want to hedge your bets with self-hosting options, Appwrite makes sense. The documentation has gaps, but the community on Discord actually helps instead of telling you to read the docs.
PocketBase: The Single Binary That Actually Works
Holy Shit, It's One File
PocketBase is the entire backend in one fucking file - a 10MB Go binary. Download it, run it, you're done. Database, auth, file uploads, real-time - it's all there. No Docker, no Kubernetes, no bullshit.
SQLite Performance Reality
PocketBase handles reads like a beast - seriously fast. But SQLite chokes when multiple users write simultaneously. I learned this the hard way during a product launch - hit around 400 concurrent users trying to sign up and started getting database is locked
errors. SQLite queues all writes behind each other. Fine for blogs, disaster for anything with real user interaction.
Development Experience
Local development IS production. The admin UI is surprisingly decent for a Go app. Schema migrations are just SQL files. No complicated deployment pipelines, no environment variable hell.
Honestly? It's refreshing in a world of overcomplicated infrastructure. Sometimes simple just works.
The Indie Developer's Best Friend
A $5/month VPS can run multiple PocketBase instances. No monthly subscription fees eating into your indie SaaS profits. But when you need to scale beyond one server, you're on your own. No managed scaling, no support team to call at 3am.
Just Tell Me What to Use
Use Supabase If
You know SQL and want PostgreSQL with an API. Building a SaaS with complex reporting needs. Want to self-host later. Don't mind paying for actual database features.
Use Firebase If
Building mobile apps. Need bulletproof real-time features. Want Google's ecosystem. Don't mind vendor lock-in and weird billing surprises.
Use Appwrite If
You need multi-database support or want to hedge your bets with self-hosting. Building across multiple platforms simultaneously. The Discord community seems helpful.
Use PocketBase If
You're an indie dev who wants to keep things simple. Building content sites or low-write apps. $5/month VPS sounds better than $25/month SaaS. You can handle scaling yourself when the time comes.