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.

Where to start

  • Auth. The first thing every app needs.
  • Database. CRUD, filters, RLS.
  • Realtime. Live data in your UI.