Build web, mobile, and AI apps with a Postgres-based development platform
Supabase is an open-source platform that centers on Postgres to provide a development experience similar to Firebase. It allows you to manage all features under a single account, eliminating the need to set up and integrate databases, authentication, and file storage separately. You can write code to generate APIs automatically and experience how data changes are delivered to clients in real time.
Architecture Rebuilt with Open-Source Tools
Supabase implements Firebase-like functionality using enterprise-grade open-source tools. It follows a policy of using existing tools with open licenses such as MIT or Apache 2 when available, and creating and releasing its own as open source when they are not. Consequently, it does not correspond one-to-one with Firebase but provides a similar development experience. Multiple open-source projects, including Postgres, Realtime, PostgREST, GoTrue, Storage, pg_graphql, postgres-meta, and Envoy, are combined to function as a single platform.
From Database to Realtime API
Supabase hosts a Postgres database and instantly converts it into a RESTful API via PostgREST. GoTrue simplifies sign-up, login, and session management as a JWT-based authentication API. Realtime uses an Elixir server to deliver Postgres insert, update, and delete events to clients in JSON format over websockets. Storage is a RESTful API for managing files in S3, with permissions handled by Postgres. Additionally, it exposes a GraphQL API through pg_graphql and allows database management tasks such as table lookup, role addition, and query execution via postgres-meta.
Language-Specific Client Library Structure
The client libraries have a modular structure, where each sub-library is an independent implementation for a single external system. JavaScript (TypeScript), Flutter, Swift, and Python are officially supported, while C#, Go, Java, Kotlin, Ruby, Rust, and Godot Engine (GDScript) are provided as community-supported. Dedicated clients for PostgREST, GoTrue, Realtime, Storage, and Functions exist for each language, and some languages offer an integrated Supabase client. This modularity allows you to maintain compatibility with existing tools while selectively using only the necessary features.
Options for Hosting and Self-Hosting
Supabase is a hosting platform that can be used immediately upon sign-up without installation. It also supports self-hosting and local development. Postgres is an object-relational database system with over 30 years of development history, renowned for its reliability, robust functionality, and performance. Envoy operates as a high-performance edge and service proxy in cloud-native environments. This configuration allows you to start quickly in a cloud environment or operate with increased control on your own infrastructure.
Considerations Before Adoption
Since Supabase is based on Postgres, it is suitable for developers familiar with the Postgres ecosystem. When considering a move from Firebase, you should verify functional differences because there is no one-to-one mapping. As it is a combination of open-source tools, it is advisable to check the versions and compatibility of each component. Confirm the scope of officially supported and community-supported languages, and ensure that the features required for your project are included in the client for that language. If you plan to self-host, you must understand the operational requirements of each component, such as Postgres, Realtime, and PostgREST, in advance.