Convex vs. Supabase

Comparing the Firebase alternatives.

ConvexSupabase
Datastore/Database
Open-source
Cloud functions
File storage
React support
Relational DB
Transactions by default
Realtime native
Live dev environment
Built-in schema enforcement
Native auth

What is Supabase?

Supabase was founded in 2020 to create an open-source alternative to Firebase. Over the last three years it has evolved to offer a modern development experience similar to Convex. Notably, they are an open-source project that brings together many other best-in-class open-source projects such as Postgres, Kong, and more.

Ultimately, we have a lot of respect for Supabase and what they are doing for developers. Since Convex’s goal as a company aligns with Supabase in creating a better backend experience for the world, it’s useful to the community to clarify where each project shines.

What’s similar?

Both Convex and Supabase:

  • Are based on ACID compliant data stores
  • Integrate with most modern TS/JS frameworks
  • Provide an in-browser database editor UI
  • Come with file storage and a native vector database

What’s different?

Reactivity / Realtime

Convex’s database offers realtime capabilities by default with function subscriptions to components that need to reflect the latest data. There are significant advantages to this approach, as there is no setup or middleware required to configure it. Convex’s websocket client provides both realtime updates and consistency guarantees that are not possible when your reads are on a different channel than your writes.

Supabase offers realtime capabilities through their Realtime server containers that you can spin up and manage alongside your installation. Supabase’s realtime data isn’t consistently delivered over the same channel, which limits consistency guarantees.

Database internals

Convex uses a custom, transactional document store that exclusively interfaces with Convex mutations and queries. This enables us to have strong performance guarantees on any interactions with the database, as we empower developers by not having to worry about database tuning. Durability is provided by a write-ahead log that is stored persistently on AWS RDS. Convex has built-in query-caching and all Convex functions are automatically subscribed to database changes.

Supabase uses PostgreSQL as their backing store, an industry-standard database. Using Postgres comes with years of tooling that has been created for the project by developers, allowing you to leverage existing projects to manage your database.

Database responsibility

Convex takes full responsibility for your database. Our custom interface with Convex queries and mutations prevent common database failures. When something goes wrong, it’s on us. Because the database interface is simpler, problems are often solved with similar patterns rather than requiring bespoke SQL and data structures for every new challenge.

Supabase uses a shared-responsibility model with your database: as Supabase mentions themselves, using Postgres means that you are always partially responsible for database health. There’s many different ways to work with Postgres in production, which is no different with Supabase.

SQL

Convex doesn’t use SQL. Convex functions write directly to documents without needing to manage an ORM (object-relational-mapping). Convex’s pairs with TypeScript for schema inference, meaning you don’t need to write a SQL schema. Convex generates a Javascript-based schema for you that you can edit down the road. We have push-time validation that your deployed schema matches the data at rest. Our opinions on SQL are summed up here.

Supabase uses Postgres. Using Postgres means using SQL, which is familiar for full-stack and backend developers. Because Supabase is SQL-based, you’ll need to write and manage a SQL schema. This can entail managing delta files that will not completely result in a declarative definition of your current schema.

Actions

Convex has a native wrapper for external APIs called Actions, ensuring that third-party software doesn’t affect your database performance.

Supabase does not have a native wrapper for interacting with external APIs.

Auth

Convex integrates with the standard set of external auth providers and does not have a native auth provider.

Supabase integrates with the standard set of external auth providers and has a native auth provider.

TypeScript

Convex offers schema generation from Convex TypeScript functions, type inference, autocompletion, and tRPC-style type-safety.

Supabase offers schema generation from a SQL schema, server-side TypeScript edge functions, type inference, autocompletion, and type-safe queries.

Pricing

Convex has a free developer plan with resource and member limits. Convex Pro has a flat fee per seat on the Professional plan, with additional charges for exceeding limits. You get 5 free projects with Convex. Convex’s open-source distribution is self-hostable via the precompiled binaries or building them from scratch.

Supabase has a free developer plan with resource and organization limits. Supabase Pro has a flat fee per organization with additional charges for exceeding limits. Supabase’s open-source distribution is self-hostable using your own infrastructure. You get 2 free projects with Supabase on their free plan, 1 per organization.

Resource limits are higher and lower in different areas for both projects, compare them here:

Open-source

The Convex client is open-source. The Convex backend just became open-source!

Supabase is open-source.

Start now

Get your project up and running in minutesGet started