Supabase is a backend-as-a-service (BaaS) built around PostgreSQL. In short: you create a project, Supabase gives you a full SQL database, an authentication system, file storage, and serverless functions - all accessible via ready-to-use APIs. This lesson lays the groundwork before you touch anything.
What Supabase is not
Before going further, a useful clarification: Supabase is not Firebase.
Firebase (Google) uses Firestore, a document-oriented NoSQL database. Supabase, on the other hand, is built on PostgreSQL: a true relational database, with tables, typed columns, joins, foreign keys, and the full power of SQL.
If you have heard "Supabase is the open-source Firebase", that is a reasonable starting analogy - but it has its limits. The data model is fundamentally different. With Supabase, you write SQL (or let the APIs do it for you), you define schemas, you set constraints. It is more structured, more predictable, and often better suited for serious applications.
The 4 building blocks of Supabase
Every Supabase project is made up of four integrated services that work together.
Database - This is the core. A full PostgreSQL instance, with activatable extensions (pgvector, PostGIS, etc.), backups, and a Realtime interface for listening to changes as they happen.
Auth - User and session management. Email/password, magic link, OAuth (Google, GitHub, Apple...), phone. Users are linked to the database, which lets you protect your data with row-level rules (RLS - more on that later).
Storage - File storage (images, videos, documents). Fully integrated with Postgres: file permissions follow the same RLS rules as your tables.
Edge Functions - Serverless functions deployed as close as possible to your users. Written in TypeScript (Deno), they run on Supabase infrastructure across multiple regions.
Why Supabase is worth using
Three concrete reasons:
Open source. All of Supabase's code is public on GitHub. You are not locked into a black box. If Supabase disappears tomorrow (hypothetical), you keep your PostgreSQL and migrate.
Self-hostable. You can run Supabase on your own server via Docker Compose. The cloud version (supabase.com) is the simplest way to get started, but the self-hosting option exists if you have compliance or cost constraints. Note that self-hosting makes you responsible for maintenance, backups, and security.
Direct SQL access. You can query your database with any standard PostgreSQL client. Supabase does not lock you into its own tools - psql, TablePlus, DBeaver, all work.
