Supabase is a backend for apps. You get a database, auth, storage, realtime, and server functions. All from one SDK. I use it on every app I ship.
For the full reference, read the Supabase docs. This is the short version.
What is Supabase?
An open-source backend built on Postgres. You get a SQL database, a REST and realtime API generated from your schema, and services (auth, storage, functions) that share the same users and rows.
Start a new project and you get a working login screen, a database you can query from your app, a bucket for user uploads, and a place to run server code. In about ten minutes, for free.
What it can do
- Postgres. A full relational database. Not a wrapper, not a fork. You get SQL, indexes, triggers, and extensions.
- Auth. Email, magic link, phone, Google, Apple, and 20+ social providers. Sessions are handled automatically on the device.
- Storage. File uploads with public or signed URLs, plus on-demand image transforms.
- Realtime. Subscribe to row changes as a stream. Useful for chat, presence, and collaborative UI.
- Edge Functions. Deno functions for logic that can't run on the client.
Every piece is optional. You can use auth on its own, or combine all five.
Why I use it
Three things.
Postgres. I can write SQL I understand, and my data is portable. If Supabase ever shuts down, I can export the database and run it on any Postgres host.
Real auth out of the box. Email, Google, and Apple in an afternoon, not a week.
One SDK. The Flutter package covers every service. I don't need five separate clients.
Firebase was the only option for a long time. Supabase does the same things, with a real relational database.