Supabase gives an application everything it needs on the server side without hiding the database behind a proprietary abstraction. The primitive is plain Postgres, and the platform layers authentication, generated APIs, storage, realtime subscriptions, and edge functions on top of it.
That choice matters when a project grows. Row level security policies are ordinary Postgres policies, migrations are ordinary SQL, and an eventual move to self-hosting or to a different provider is a database migration rather than a rewrite.
Decisive facts
- Auto-generated REST and GraphQL APIs over your schema
- Authentication with social providers, magic links, and row level security
- Realtime subscriptions driven by Postgres replication
- Object storage with policy-based access control
- Vector columns for retrieval workloads via pgvector