What is a BaaS (Backend-as-a-Service)?
When you build an application, "backend" work usually means: setting up a database, writing an API layer, handling user authentication, managing file uploads, and keeping servers running and secure. A Backend-as-a-Service (BaaS) platform provides all of this as a managed product, so you don't build or maintain that infrastructure yourself.
Supabase describes itself as an "AI Native Backend-as-a-Service." In practice, it gives you a production-grade backend — database, auth, storage, realtime, serverless functions — provisioned in minutes, that you connect to directly from your frontend or backend code.
The One Idea That Explains Everything Else
Supabase is not a custom database system with extra features bolted on. It is a real, unmodified PostgreSQL database, with backend services built as layers on top of it.
This single fact explains almost every design decision in Supabase:
- Authentication isn't a separate proprietary system — Supabase Auth stores users in a Postgres schema called
auth, and issues standard JWTs. - Storage isn't a black box — file metadata lives in Postgres tables, and access rules are written using the same policy language you use for your own tables.
- The REST API you get for free isn't hand-coded by Supabase for your project — it's generated dynamically from your Postgres schema by a tool called PostgREST.
Once this clicks, Supabase stops looking like "a magic tool with a lot of buttons" and starts looking like "Postgres, with well-built services wired directly into it."
Why "Just Postgres" Matters
Many earlier BaaS platforms (Firebase being the best-known example) use a NoSQL document database with a proprietary query language and proprietary hosting. Choosing that platform means your data model and your query logic are tied to that platform specifically.
Choosing Postgres as the foundation gives you three concrete advantages:
1. It's a real, industry-standard database.
You can connect with any Postgres-compatible tool — psql, TablePlus, DBeaver, Prisma, Drizzle, pgAdmin — not just Supabase's own dashboard.
2. SQL is the real interface underneath.
Even when you're calling supabase.from('table').select() from JavaScript, that call is translated into an SQL query against Postgres. Learning Supabase means learning transferable relational-database skills, not a platform-specific syntax.
3. You are not locked in.
Supabase is open source, and the entire stack (database, auth, storage, realtime engine, API layer) can be self-hosted on your own infrastructure if you ever need to leave the managed cloud platform. Your schema, data, and SQL knowledge move with you.
What You Get the Moment You Create a Project
When you spin up a new Supabase project, you are really provisioning a dedicated Postgres database, and Supabase immediately attaches these services to it:
|
Service |
What runs
underneath |
|
Data API
(REST) |
PostgREST,
reading your schema automatically |
|
Data API
(GraphQL) |
pg_graphql extension
(opt-in on new projects) |
|
Authentication |
GoTrue
service + an auth schema inside your Postgres database |
|
Storage |
Object
storage service + a storage schema for metadata and policies |
|
Realtime |
A service
that listens to Postgres's write-ahead log (WAL) for changes |
|
Edge
Functions |
Deno-based
serverless functions, deployed independently of your database |
Notice the pattern: almost every "feature" is either a schema inside your database or a service that talks to your database. There is no separate system to learn from scratch for each feature — the mental model stays the same throughout this course.
A Simple Way to Picture It
Think of Supabase as three layers stacked on top of each other:
- Postgres — your actual data, and the source of truth for permissions (via Row Level Security, which we'll cover in Phase 2).
- Supabase services — Auth, Storage, Realtime, Edge Functions — each one either reads/writes to Postgres directly or reacts to changes in it.
- Client libraries (
supabase-jsand others) — a convenient JavaScript/TypeScript API that talks to those services over HTTP, so you rarely write raw SQL from your frontend.
Everything you'll learn in this course fits into one of these three layers.
Next up — Post 1.2: a tour of all 8 core pillars of Supabase (Database, Auth, Storage, Realtime, Edge Functions, Data APIs, Vector/AI, Studio) — what each one is actually used for in a real application.