Supabase
Your quote says Supabase, so most of the backend is bought rather than built
The short answer
Supabase is a hosted platform built around a standard PostgreSQL database, with user accounts, file storage, automatically generated APIs and live updates wrapped around it. A small team gets a working backend without building one. The data stays in ordinary Postgres, so leaving is realistic. Everything wrapped around that database is the vendor's.
Nobody on this project is writing a login system, a file store and an API layer from scratch, because Supabase already has them. That's the argument, and it's a good one. What it doesn't tell you is what you're depending on.
It's a Postgres database with the usual chores already done
Underneath all of it is PostgreSQL, a relational database that's been around since the nineties and runs a large share of the software you already use. Supabase didn't invent a database. It hosts one for you, one per project, and wraps the parts every application needs around it.
Those parts are the actual product. User accounts and login. Somewhere to put uploaded files. An API generated from your tables, so adding a column makes it available without anyone writing an endpoint. A live channel that pushes changes to open browsers. Short server-side functions for work a visitor's device can't do.
None of it is exotic. It's the list a team would otherwise build before the first feature anybody asked for.
What your app calls
Every request
Client libraries in the browser or the phone, talking to Supabase directly with no server of yours in between.
Auth, storage, functions
The bundle
Login and user accounts, an object store for uploaded files, and short server-side functions.
The generated API
Derived from your schema
Read and write access built from your tables, plus a live channel that pushes changes to open pages.
Row Level Security
Yours to write
Postgres rules deciding which rows each signed-in user may see. With the database reachable from the browser, this is the security model.
PostgreSQL
Standard and portable
An ordinary relational database, one per project, holding your tables and your user records alike.
Why it's shaped the way it is
Supabase started in 2020 with a stated target: be the open-source answer to Firebase. That explains most of what follows.
Firebase, Google's bundle of the same parts, made small teams fast by removing the backend entirely. It keeps data as documents rather than tables, which suits some products well, and it's Google's to run either way. Supabase copied the convenience and changed the foundation. Relational tables, because most business data really is rows and relationships, and code you can run on your own servers.
If your data is document-shaped and renting doesn't bother you, the older answer is still a reasonable one.
What it's genuinely good at
Speed, for a team with nobody spare. Two or three developers can have accounts, permissions, file uploads and a self-updating screen running in days rather than a quarter, and none of them has to become the infrastructure person. That's the strongest argument on the table.
The second one is quieter and lasts longer. Your data sits in Postgres, the format the whole industry already knows. Standard SQL, standard backups, standard tools. Your reporting person can query it, and a database dump is a portable copy rather than an export in somebody's private shape.
Postgres brings its extensions along too, so full-text search, geographic queries and the vector search behind AI features sit in the database you already have. The dashboard is legible to people who don't write code, which sounds minor until a customer first disputes what happened.
Where it stops
The first ceiling has nothing to do with performance. Because the browser talks to the database directly, the only thing between one customer's records and another's is a set of Row Level Security rules somebody wrote. Postgres enforces them properly. The open question is whether they were written, switched on, and tested by someone actively trying to get past them.
Then there's the shape of the work. Anything long-running sits awkwardly: a long nightly job, a video to process, a queue that has to survive a restart. The server-side functions are built for short requests, so that work ends up somewhere else. Cheaper to decide where at the start.
Two more belong to Postgres rather than to Supabase. It caps how many things can connect at once, so a lot of short-lived functions in front of it need a pooler in between, which the platform provides. And analytics queries against the database that also serves customers work right up until they don't. A bundle that keeps the database out of sight makes both easier to forget.
The data leaves. Everything around it doesn't.
This is the honest version of the portability argument, because the marketing version overstates it.
What genuinely moves is the database. Tables, rows, relationships, and your user records, which sit in that same database rather than in a separate identity product. A standard dump gets all of it, and any Postgres host will take it. That's the best single reason to prefer this over a closed equivalent.
What doesn't move is everything wrapped around it. The login flows, the file permissions, the generated API your code is written against, the live channels, the functions. Rewriting those is the actual migration. Running the open-source version yourself softens it, at the price of operating several services instead of subscribing to one.
So you'd keep your data and rebuild your plumbing. Better than most platforms leave you. Not nothing.
Supabase
A backend your team builds
- Time to something working
Supabase: Days, inside decisions somebody else already made.
A backend your team builds: Weeks or months, shaped the way you want it.
- Where the data sits
Supabase: Standard Postgres, portable by dump, on machines you can't see.
A backend your team builds: Whatever your team picked, which your team then has to run.
- Who you depend on
Supabase: One vendor for login, files, API and hosting at once.
A backend your team builds: The people who built it, and whoever replaces them.
- Cost as you grow
Supabase: Plans plus usage, on a curve the vendor sets and can change.
A backend your team builds: Servers plus the people to run them, on a curve you carry.
- Changing your mind later
Supabase: The data moves cleanly. The application code gets rewritten.
A backend your team builds: Nothing forces a rewrite, and nothing was done for you either.
Who has to be around after launch
Supabase is a developer tool with a friendly dashboard, not a no-code product. That decides who you need on hand.
Somebody, in-house or on retainer, has to be comfortable with SQL and with the access rules. Not full time, and not an infrastructure team, because patching, backups and certificates belong to the vendor on the hosted service. The schema and the rules are yours, and they change every time a feature does.
Before the platform question, settle the ownership one. Whose account is this in, who writes the access rules, and who gets called when a query goes slow. Those three names tell you more about year two than the platform choice ever will.
Worth knowing before you start
Ask to see the access rules on your two most sensitive tables, and what happens when a signed-in user requests somebody else's row. If nobody can answer in front of you, that goes ahead of any feature.
Get the account into your own company's name, with your own billing on it, before the final invoice is settled. Moving a project out of someone else's account afterwards is possible and tedious.
Take a database dump yourself, once, and restore it somewhere else. A backup nobody has restored is a claim rather than a copy.
Ask what your recovery point actually is: how far back you can restore, how long it takes, and whether it's switched on today. The morning you need it is the wrong morning to find out.
If the product needs long-running background work, decide where that lives before the build starts. Video processing, big nightly jobs and durable queues want somewhere other than a short request.
Common questions
No. Both bundle a database, login, file storage and live updates so a small team doesn't build them. The difference is underneath. Supabase runs standard PostgreSQL with tables and relationships, and it's open source. Firebase keeps documents and is Google's to run.
Yes. The code is open source and there's a documented path to running it yourself. What you take on is operating several services instead of paying for one, plus the backups and the patching. The usual reason is a rule about where records are allowed to live.
For anything structural, yes. The dashboard lets a non-technical person read tables, look up a user and check what the system recorded. Changing the schema or the access rules is developer work, and the rules are where mistakes expose data.
You keep the data and rebuild the rest. A standard Postgres dump carries your tables, rows and user records to any Postgres host. The login flows, file permissions, generated API and functions get rebuilt, because your code is written against Supabase's libraries.
Real products run on it. The question isn't size, it's shape. Ordinary request-and-response work over relational data suits it. Heavy background processing and analytics-scale querying want somewhere else, and then this is one piece of the backend rather than all of it.
Related
Want to talk through your situation?
A short call is usually enough to tell whether this is the right work for you. If it isn’t, we’ll say so.