Favicon of supabase

supabase

Postgres database platform with auto-generated REST and GraphQL APIs, authentication, realtime subscriptions, file storage, and edge functions.

Supabase is a Postgres development platform built from a set of open source tools, aiming to give developers a Firebase-like experience without locking them into a proprietary backend. Every project runs on a hosted Postgres database, and the surrounding pieces (auth, APIs, realtime, storage, functions) are added on top of that same database rather than living as separate systems. The project is not a one-to-one clone of Firebase: where an established open source tool with an MIT, Apache 2, or equivalent license already exists, Supabase adopts and supports it; where nothing suitable exists, the team builds and open sources the piece itself.

Key features

  • Hosted Postgres database: every project gets a full Postgres database rather than a proprietary datastore, so existing SQL knowledge, extensions, and tooling carry over directly.
  • Authentication and authorization: GoTrue provides JWT-based auth, handling sign-ups, logins, and session management for applications.
  • Auto-generated REST API: PostgREST reads the Postgres schema and exposes it as a RESTful API without hand-written endpoint code.
  • Auto-generated GraphQL API: the pg_graphql Postgres extension exposes the same schema through a GraphQL API.
  • Realtime subscriptions: an Elixir server listens to Postgres inserts, updates, and deletes, converts them to JSON, and broadcasts them to authorized clients over websockets.
  • Database and Edge Functions: logic can run directly inside Postgres as database functions, or as Edge Functions deployed independently of the database.
  • File storage: a RESTful storage API manages files in S3-compatible storage while Postgres handles the permission checks.
  • AI and vector toolkit: built-in support for embeddings and vector search on top of Postgres.
  • Dashboard and Postgres metadata API: postgres-meta exposes a RESTful API for managing tables, roles, and queries, and backs the web dashboard used to administer a project.
  • Modular client libraries: officially maintained clients exist for JavaScript/TypeScript, Flutter, Swift, and Python, each bundling sub-libraries for the REST, auth, realtime, storage, and functions layers; community-maintained clients extend this to C#, Go, Java, Kotlin, Ruby, Rust, and GDScript for Godot.

Ideal use cases

Supabase fits teams building a web or mobile application backend who want a managed Postgres database paired with authentication, APIs, and storage without wiring each of those services together from separate vendors. It suits products that need live data updates, since the realtime layer pushes database changes to clients over websockets without a separate pub/sub service. It is also a reasonable fit for teams that want to keep the option of self-hosting or running the stack locally rather than committing entirely to a hosted vendor, since the same open source components back both the hosted platform and a self-managed deployment. Applications that need file uploads governed by the same permission model as the rest of the data (Postgres row-level rules enforced through the Storage API) also fit naturally, as do projects adding embeddings or vector search on top of data that already lives in Postgres.

It is a weaker fit for teams that need a non-Postgres database engine, since the API layer, extensions, and tooling are built specifically around Postgres. Teams expecting an exact Firebase feature-for-feature replacement should also adjust expectations, since Supabase explicitly does not aim for a one-to-one mapping and instead assembles equivalent functionality from independent open source components. Very small static sites with no database or auth requirements have little use for the platform.

Installation

The README describes three ways to start using Supabase, without requiring a local installation for the first option:

1. Hosted platform: sign up and create a project at supabase.com/dashboard.
   No local installation is required to start using it.

2. Self-hosting: follow the self-hosting guide at
   supabase.com/docs/guides/hosting/overview to run the stack on your
   own infrastructure.

3. Local development: follow the local development guide at
   supabase.com/docs/guides/local-development to run the stack on
   your machine.

For contributing to the Supabase repository itself, the README points to DEVELOPERS.md in the project for setup instructions.

Frequently asked questions

Share:

Stars
106K
Forks
13K
Last commit
2 hours ago
Repository age
7 years
License
Apache-2.0
Self-hosted
Yes
Activity score
90/100
View Repository
Built with:

Similar to supabase

Favicon

 

  
  
Favicon

 

  
  
Favicon