Convex vs Supabase for Indie Developers (2026)
Convex is a reactive backend where your queries and mutations are TypeScript functions and every query is live by default. Supabase is a hosted Postgres with auth, storage, realtime and edge functions around it. Both start free and both have a $25 entry paid plan, but Convex charges per developer and Supabase charges per organisation plus compute. Pick Convex for realtime, TypeScript-only apps; pick Supabase when you want SQL and the most portable exit.

Key takeaways
- Convex stores documents and you write queries, mutations and actions as TypeScript functions; Supabase gives you a full Postgres database you query with SQL or its client libraries.
- Convex queries are reactive by default: subscribed clients update to the same database snapshot when data changes. Supabase Realtime offers Broadcast, Presence and Postgres Changes as separate features you opt into.
- Free tiers: Convex includes 1M function calls, 0.5 GB database storage and 1 GB file storage; Supabase Free includes 500 MB database per project, 1 GB file storage, 50,000 MAUs and 2 active projects that pause after a week idle.
- Paid: Convex Professional is $25 per developer per month; Supabase Pro is from $25 per month per organisation and includes $10 of compute credits, enough for one Micro instance.
- Exit paths differ: Supabase is Apache-2.0 Postgres you can dump with standard tools; Convex's backend is FSL-1.1-Apache-2.0 and self-hostable, with exports as a zip file.
On this page 23
- TL;DR
- What this post covers (and what it does not)
- Convex vs Supabase at a glance
- Data model: TypeScript functions vs Postgres
- Realtime model
- Auth
- File storage, vector search and scheduling
- Pricing: per developer vs per organisation plus compute
- Convex
- Supabase
- Illustrative monthly cost (our example)
- Open source, self-hosting and lock-in
- AI coding tools
- Decision table by app type
- Our pick by situation
- Frequently asked questions
- Is Convex or Supabase cheaper for a solo developer?
- Is Convex a SQL database?
- Can I self-host Convex or Supabase?
- Which has better realtime, Convex or Supabase?
- How is this different from the Supabase vs Firebase and Neon vs Supabase posts?
- Launch what you build
- Sources
Verdict: Pick Convex if you are building a TypeScript app where live updates matter (collaboration, chat, dashboards, multiplayer) and you would rather write functions than SQL. Pick Supabase if you want a real Postgres database, SQL, row-level security and the easiest exit path. For a solo founder both cost $0 to start and $25 a month at the first paid tier, so choose on the programming model, not the price.
Every price, limit and quote below comes from Convex's and Supabase's own pages and repositories, checked on 15 Nov 2026. The advice in between is ours and is marked as such.
TL;DR#
- Different models. Convex is a document store you program with TypeScript queries, mutations and actions. Supabase is Postgres with auth, storage, realtime and edge functions bundled around it.
- Realtime. Convex says it is "automatically realtime" (Convex realtime docs). Supabase offers Broadcast, Presence and Postgres Changes (Supabase Realtime).
- Free tiers. Convex: 1M function calls, 0.5 GB database, 1 GB files (Convex pricing). Supabase: 500 MB database per project, 1 GB files, 50,000 MAUs, 2 active projects, paused after 1 week idle (Supabase pricing).
- Paid. Convex Professional is "$25 per developer/month". Supabase Pro is from $25/month and includes $10 of compute credits.
- Exit. Supabase is Apache-2.0 Postgres. Convex's backend is FSL-1.1-Apache-2.0 and can be self-hosted.
Disclosure: ZeroRaised publishes this comparison and is a launch site for bootstrapped products. ZeroRaised has no commercial relationship with Convex or Supabase and earns nothing if you sign up for either. Facts come from the linked sources as checked on 15 Nov 2026.
What this post covers (and what it does not)#
We have already compared Supabase against other hosted databases. If you are choosing between Supabase and Google's stack, read Supabase vs Firebase for indie makers. If you just need Postgres and are weighing a serverless option, read Neon vs Supabase. For a wide view of every free option, see free database hosting, and for the auth-only decision, see Clerk vs Supabase Auth.
This post is about a different fork in the road. Convex and Supabase are both "backend in a box" products, but they ask you to think about data in opposite ways. That choice shapes your code far more than any pricing line.
Convex vs Supabase at a glance#
| Convex | Supabase | |
|---|---|---|
| Data model | Documents in tables, accessed via TypeScript functions | Postgres (relational, SQL) |
| Server logic | Queries, mutations, actions in your convex/ folder | SQL, database functions, Edge Functions |
| Realtime | Every subscribed query updates automatically | Broadcast, Presence, Postgres Changes |
| Auth | Convex Auth, or Clerk, WorkOS AuthKit, Auth0, any OIDC provider | Supabase Auth (password, magic link, OTP, social, SAML SSO) |
| Authorisation | Checks inside your functions | Row Level Security policies |
| File storage | Built in, 1 GB free | Built in, 1 GB free |
| Vector search | Built in, actions only, 2 to 4096 dimensions | pgvector in Postgres |
| Scheduling | crons.ts plus runAfter / runAt | Supabase Cron (pg_cron) |
| Free tier | 1M function calls, 0.5 GB DB | 500 MB DB per project, 2 active projects |
| First paid plan | $25 per developer/month | From $25/month per organisation |
| Licence | FSL-1.1-Apache-2.0 | Apache-2.0 |
| Export | Zip via npx convex export | supabase db dump, pg_dump |
Sources: Convex pricing, Supabase pricing, and the docs linked in each section below.
Data model: TypeScript functions vs Postgres#
Convex stores documents in tables. You do not send queries from the client; you call named functions that live in your convex/ directory. Queries read data, mutations write it transactionally, and actions can call third-party APIs. Convex's own AI docs sum up the pitch under the heading "Queries are Just TypeScript" (Convex AI docs).
Supabase gives every project a full Postgres database. You can query it from the client libraries, write raw SQL, add extensions, create views and database functions, and connect any tool that speaks Postgres.
Our read: if your data is relational and reporting-heavy (invoices, orders, analytics, anything you will want to JOIN and GROUP BY), Postgres is the safer home. If your data is mostly "objects that belong to users and change often", Convex's model is pleasant and removes a whole layer (API routes, ORM, cache invalidation). The cost is that you learn Convex's way of indexing and querying instead of SQL, a skill that transfers less well.
Realtime model#
This is Convex's biggest difference. Its docs say "Turns out Convex is automatically realtime!" Convex tracks what each query depends on, including database changes, and re-triggers subscriptions when they change. "Every client subscription gets updated simultaneously to the same snapshot of the database" (Convex realtime docs). You do not write any subscription code beyond using the query.
Supabase treats realtime as a feature you opt into. It has three parts (Supabase Realtime):
- Broadcast: "Send low-latency messages between clients."
- Presence: "Track and synchronize user state across clients."
- Postgres Changes: "Listen to database changes in real-time."
Supabase meters it. Free includes 200 concurrent peak connections and 2 million messages a month; Pro includes 500 connections (then $10 per 1,000) and 5 million messages (then $2.50 per million) (Supabase pricing).
Our read: for a collaborative or multiplayer product, Convex saves real engineering time because consistency is handled for you. For a typical CRUD SaaS where only a notification badge needs to be live, Supabase Realtime is plenty.
Auth#
Convex supports two routes. Its first-party library, Convex Auth, is described as "the best way to get started with auth on Convex", and it also integrates with Clerk, WorkOS AuthKit and Auth0, plus "any OpenID Connect-compatible identity provider" (Convex auth docs). Authorisation is code: you check the user's identity inside each function.
Supabase Auth supports "password, magic link, one-time password (OTP)", social sign-in and SAML SSO, and "integrates with Supabase's database features, making it easy to use Row Level Security (RLS) for authorization" (Supabase Auth docs). Free includes 50,000 MAUs; Pro includes 100,000 then $0.00325 per MAU (Supabase pricing).
Our read: RLS is powerful but easy to get wrong if you are new to it, and a missing policy can expose a table. Convex's "check in the function" model is easier to reason about for most TypeScript developers. If you are weighing a separate auth provider, our Clerk vs Supabase Auth post goes deeper.
File storage, vector search and scheduling#
File storage. Convex lets you "Upload files to store them in Convex and reference them in your database documents" and "Serve files via URL", and says "All file types are supported" (Convex file storage). One documented limit: HTTP action responses are capped at 100 MiB. Supabase Storage includes 1 GB free and 100 GB on Pro, then $0.0213/GB (Supabase pricing).
Vector search. Convex has it built in, but "vector search is only available in Convex actions", dimensions must be "between 2 and 4096", and you get "up to 256 requested results (defaulting to 10)". It is "consistent and fully up-to-date", so a vector you just wrote is searchable immediately (Convex vector search). Supabase uses pgvector inside Postgres: "A vector store and embeddings support using Postgres and pgvector" (Supabase AI docs). Our read: if you want embeddings next to relational data and SQL filters, Supabase is the more flexible choice; Convex is simpler for a small RAG feature in a Convex app.
Scheduling. Convex defines recurring jobs in a crons.ts file (Convex cron jobs) and one-off jobs with runAfter and runAt. Scheduling from a mutation is atomic with the rest of the mutation, is "resilient against unexpected downtime or system restarts", and "a single function can schedule up to 1000 functions with total argument size of 8MB" (Convex scheduled functions). Supabase Cron is built on pg_cron, can run SQL, database functions or an HTTP request such as an Edge Function, and Supabase recommends "no more than 8 Jobs run concurrently" and that each "should run no more than 10 minutes" (Supabase Cron).
Our read: Convex's durable "send this reminder in three days" scheduling is one of its nicest features for a solo developer. On Supabase you would typically combine pg_cron with a jobs table.
Pricing: per developer vs per organisation plus compute#
Convex#
| Free & Starter | Professional | |
|---|---|---|
| Price | $0, Starter is pay as you go | $25 per developer/month |
| Developers | 1 to 6 | 1 to 20 |
| Function calls | 1M (then $2.20 per 1M) | 25M (then $2 per 1M) |
| Action compute | 20 GB-hours (then $0.33/GB-hour) | 250 GB-hours (then $0.30) |
| Database storage | 0.5 GB (then $0.22/GB) | 50 GB (then $0.20/GB) |
| Database I/O | 1 GB (then $0.22/GB) | 50 GB (then $0.20/GB) |
| File storage | 1 GB (then $0.033/GB) | 100 GB (then $0.03/GB) |
| Data egress | 1 GB (then $0.132/GB) | 50 GB (then $0.12/GB) |
| Deployments | 40 | 300 |
| Custom domains | No | Yes |
| Email support | No | Yes |
Source: Convex pricing. Convex says "Free plan has built-in resources. Starter plan is pay-as-you-go beyond free tier limits." On Free, its FAQ warns that if you exceed limits for an extended period "your deployment may return HTTP errors in response to function calls" (Convex pricing FAQ). Query and mutation compute is not billed separately. Business & Enterprise starts at a $2,500 monthly minimum.
Supabase#
| Free | Pro | Team | |
|---|---|---|---|
| Price | $0 | From $25/month | From $599/month |
| Database | 500 MB per project | 8 GB, then $0.125/GB | Same as Pro |
| Egress | 5 GB | 250 GB, then $0.09/GB | Same as Pro |
| File storage | 1 GB | 100 GB, then $0.0213/GB | Same as Pro |
| MAUs | 50,000 | 100,000, then $0.00325 | Same as Pro |
| Edge Function invocations | 500,000 | 2M, then $2 per 1M | Same as Pro |
| Compute credits | None | $10/month (one Micro) | $10/month |
| Projects | 2 active | Not stated (each needs compute) | Not stated |
| Pausing | After 1 week idle | Never | Never |
| Backups | Not included | Every day, kept 7 days | Every day, kept 14 days |
Source: Supabase pricing. A Micro instance is $10/month (shared compute, 1 GB RAM), so the Pro plan's credit covers one project's compute.
Our read on the pricing units: Convex's per-developer model is ideal for a solo founder with several side projects, because one $25 seat covers many deployments. Supabase's per-organisation model is ideal for a team where only one person touches the backend, but each extra project on Pro needs its own compute.
Illustrative monthly cost (our example)#
This is our own arithmetic on the published rates, not a quote. Imagine a solo founder's small SaaS in month six: 3M function calls, 2 GB of database storage, 5 GB of database I/O, 5 GB of files and 3 GB of egress.
- Convex Starter: 2M extra calls ($4.40) + 1.5 GB storage ($0.33) + 4 GB I/O ($0.88) + 4 GB files ($0.13) + 2 GB egress ($0.26) = about $6 a month, assuming no extra action compute.
- Supabase: 2 GB of data is over the free 500 MB, so you move to Pro at $25 a month, with the Micro compute covered by the credit. Everything else in the example fits inside Pro's allowances.
The two products meter different things (Convex counts function calls; Supabase does not), so run your own numbers. The point is that Convex's Starter plan can bill a few dollars where Supabase steps straight to $25, while Supabase's $25 buys much larger headroom (8 GB database, 250 GB egress) before overages.
Open source, self-hosting and lock-in#
Convex. The convex-backend repository says "The self-hosted product includes most features of the cloud product, including the dashboard and CLI." Its licence is the Functional Source License, Version 1.1, Apache 2.0 Future License, under which each version becomes Apache 2.0 two years after it is made available. To leave, you can run npx convex export --path ~/Downloads to download your data as a zip file (Convex export docs).
Supabase. The Supabase repository is Apache-2.0. Its docs say "The fastest and recommended way to self-host Supabase is to use Docker", but self-hosted Supabase "runs as a single project" and lacks some platform features such as branching and managed backups (Supabase self-hosting). To export, Supabase says "To generate a logical backup yourself, use the Supabase CLI db dump command", and recommends free projects do this regularly because Free has no backups (Supabase backups).
Our read: the real lock-in with Convex is not the data, it is the code. Your backend is written against Convex's function APIs and reactivity, so moving off means rewriting it, even if you self-host. A Supabase app's data and SQL move to any Postgres host; what you would rewrite is mostly auth and storage calls.
AI coding tools#
Both vendors court AI-assisted developers. Convex argues that because queries are TypeScript, "AI can generate database code using the large training set of TypeScript code without switching to SQL", recommends a rules file or its plugin for Claude Code, Codex and Cursor, and offers an MCP server to "give your AI coding agent access to your Convex deployment" (Convex AI docs). Supabase's MCP server lets assistants list tables, run SQL and apply migrations, with setup guides for Claude Code, Codex, Cursor and others, and warns that "Production projects can contain sensitive data", recommending read-only mode and project scoping (Supabase MCP docs).
Our read: both work well with agents. Whichever you pick, keep the agent off production data.
Decision table by app type#
This is our editorial advice based on the facts above.
| You are building | Our pick | Why |
|---|---|---|
| Collaborative editor, whiteboard, multiplayer game | Convex | Reactive queries and consistent snapshots by default |
| Chat or live dashboard | Convex | No subscription plumbing to write |
| Classic CRUD SaaS with billing and reports | Supabase | SQL, joins, Postgres tooling |
| App that needs admin SQL access or BI tools | Supabase | It is just Postgres |
| AI app with RAG next to relational data | Supabase | pgvector plus SQL filters |
| Small AI feature inside a TypeScript app | Convex | Built-in vector search in actions |
| Several side projects, one developer | Convex | One $25 seat, 300 deployments on Professional |
| Team where one person owns the backend | Supabase | Priced per organisation |
| Worried about exit or vendor risk | Supabase | Apache-2.0 Postgres, standard dumps |
| Mobile app with heavy auth needs | Supabase | 50,000 free MAUs, many auth methods |
Our pick by situation#
- You write TypeScript end to end and want live UI: Convex. Start on Free, switch to Starter so small overages bill instead of erroring.
- You know SQL or expect reporting needs: Supabase. Start on Free, but export with
db dumpuntil you are on Pro. - You are validating an idea this weekend: either. Pick the one whose model you already understand; the fastest stack is the one you do not have to learn.
- You have paying users: move to a paid tier on either. Supabase Pro adds backups and stops pausing; Convex Professional adds custom domains and email support.
Once the backend is picked, the rest of the job is shipping. Work through our product launch checklist for bootstrapped makers before your launch day.
Frequently asked questions#
Is Convex or Supabase cheaper for a solo developer?#
At the first paid tier they cost the same for one person: Convex Professional is $25 per developer per month and Supabase Pro is from $25 per month. The difference shows up as you grow. Convex adds $25 for each extra developer, while Supabase adds compute for each extra project beyond what the $10 monthly compute credit covers. Convex also has a pay-as-you-go Starter plan that bills small overages instead of forcing a jump to $25.
Is Convex a SQL database?#
No. Convex stores documents in tables and you read and write them through TypeScript query, mutation and action functions. Convex's AI docs make the point that queries are just TypeScript, so there is no SQL layer to learn. Supabase is the opposite: every project is a full Postgres database you can query with SQL.
Can I self-host Convex or Supabase?#
Both. The convex-backend repository says the self-hosted product includes most features of the cloud product, including the dashboard and CLI, and it is licensed FSL-1.1-Apache-2.0, which converts each version to Apache 2.0 two years after release. Supabase is Apache-2.0 and recommends Docker Compose for self-hosting, though a self-hosted install runs as a single project and lacks some platform features such as branching and managed backups.
Which has better realtime, Convex or Supabase?#
Convex makes realtime the default: any query a client subscribes to updates automatically when its data changes, and all clients see the same snapshot. Supabase Realtime gives you more explicit tools, Broadcast for low-latency messages, Presence for who is online and Postgres Changes for listening to the database, with 200 concurrent connections and 2 million messages a month on the free plan.
How is this different from the Supabase vs Firebase and Neon vs Supabase posts?#
Those posts compare Supabase with another hosted database: see Supabase vs Firebase and Neon vs Supabase. This one compares two very different programming models: Convex's TypeScript functions over a reactive document store versus Supabase's Postgres-first platform. It covers data model, realtime, auth, storage, vector search, scheduling, pricing units, self-hosting and how you would leave each one.
Launch what you build#
ZeroRaised is a launch directory for products built without institutional VC. Whichever backend you choose, submit your product for free when it is ready. For more comparisons and guides on building without investors, join the ZeroRaised newsletter.
Sources#
- Convex pricing, last checked 15 Nov 2026
- Convex pricing FAQ, last checked 15 Nov 2026
- Convex realtime docs, last checked 15 Nov 2026
- Convex auth docs, last checked 15 Nov 2026
- Convex file storage docs, last checked 15 Nov 2026
- Convex vector search docs, last checked 15 Nov 2026
- Convex cron jobs docs, last checked 15 Nov 2026
- Convex scheduled functions docs, last checked 15 Nov 2026
- Convex export docs, last checked 15 Nov 2026
- Convex AI docs, last checked 15 Nov 2026
- convex-backend repository and LICENSE.md, last checked 15 Nov 2026
- Supabase pricing, last checked 15 Nov 2026
- Supabase Realtime docs, last checked 15 Nov 2026
- Supabase Auth docs, last checked 15 Nov 2026
- Supabase AI and vectors docs, last checked 15 Nov 2026
- Supabase Cron docs, last checked 15 Nov 2026
- Supabase self-hosting docs, last checked 15 Nov 2026
- Supabase backups docs, last checked 15 Nov 2026
- Supabase MCP docs, last checked 15 Nov 2026
- Supabase repository, last checked 15 Nov 2026
Frequently asked questions
Is Convex or Supabase cheaper for a solo developer?
At the first paid tier they cost the same for one person: Convex Professional is $25 per developer per month and Supabase Pro is from $25 per month. The difference shows up as you grow. Convex adds $25 for each extra developer, while Supabase adds compute for each extra project beyond what the $10 monthly compute credit covers. Convex also has a pay-as-you-go Starter plan that bills small overages instead of forcing a jump to $25.
Is Convex a SQL database?
No. Convex stores documents in tables and you read and write them through TypeScript query, mutation and action functions. Convex's AI docs make the point that queries are just TypeScript, so there is no SQL layer to learn. Supabase is the opposite: every project is a full Postgres database you can query with SQL.
Can I self-host Convex or Supabase?
Both. The convex-backend repository says the self-hosted product includes most features of the cloud product, including the dashboard and CLI, and it is licensed FSL-1.1-Apache-2.0, which converts each version to Apache 2.0 two years after release. Supabase is Apache-2.0 and recommends Docker Compose for self-hosting, though a self-hosted install runs as a single project and lacks some platform features such as branching and managed backups.
Which has better realtime, Convex or Supabase?
Convex makes realtime the default: any query a client subscribes to updates automatically when its data changes, and all clients see the same snapshot. Supabase Realtime gives you more explicit tools, Broadcast for low-latency messages, Presence for who is online and Postgres Changes for listening to the database, with 200 concurrent connections and 2 million messages a month on the free plan.
How is this different from the Supabase vs Firebase and Neon vs Supabase posts?
Those posts compare Supabase with another hosted database. This one compares two very different programming models: Convex's TypeScript functions over a reactive document store versus Supabase's Postgres-first platform. It covers data model, realtime, auth, storage, vector search, scheduling, pricing units, self-hosting and how you would leave each one.