Supabase vs Firebase vs Neon: Pricing, Data Model and Lock-In

How Supabase, Firebase and Neon really meter, with prices read from each vendor's page, plus data model, auth and row-level security, vector search, your exit path, and when to use none of them.

Webeons Engineering10 min read
Supabase vs Firebase vs Neon: Pricing, Data Model and Lock-In
The short answer
Pick by data model first. If your data has relationships, such as customers, orders and invoices, choose Postgres: Supabase for a full backend, Neon for a database alone. Pick Firebase when the data fits documents and live sync matters most.
They meter different things. Firestore bills $0.03 per 100,000 reads, Neon bills $0.106 per compute-hour, and Supabase Pro starts at $25 a month with larger compute as an add-on, as of November 2026.
With our illustrative inputs for 100,000 monthly users, Supabase and Neon land at about $91 to $93 a month and Firebase about $366, mostly sign-in fees above 50,000 users. At small scale all three can be free.

For most new products we would start on Postgres, and the choice between Supabase and Neon comes down to how much backend you want bundled. Firebase is the better pick for a narrower set of apps: data that fits documents, a mobile client that needs live updates, and a team already at home on Google Cloud. The bill matters less than the data model at the start, and more as you grow.

We should say where we stand. All three of our own products run on Supabase, so we know its trade-offs from the inside and have a reason to favor it. We have tried to be fair to the other two, and every price below comes from the vendor's own page, read on November 3, 2026.

Supabase vs Firebase vs Neon at a Glance

What each one is, as of November 2026
SupabaseFirebaseNeon
Core databasePostgresFirestore, a NoSQL document databasePostgres, serverless
BundledAuth, file storage, edge functions, realtimeAuth, storage, functions, hostingAuth (managed Better Auth), a REST Data API, branching
Access controlPostgres row-level securityFirebase Security RulesPostgres row-level security
Main meterPlan plus compute size, always onDocument reads, writes and deletesCompute-hours, scales to zero
Free tier2 projects, 500 MB, pauses after a week idle50,000 reads and 20,000 writes a day100 compute-hours and 1 GB per project
Vector searchpgvectorBuilt-in, flat index, up to 2,048 dimensionspgvector
From each vendor's docs and pricing page. Firebase prices are Firestore Standard edition in us-central1. Neon's Free plan suspends compute at its limits rather than deleting data.

Postgres vs Documents: The Data Model Decides Most of It

Firebase's docs describe Firestore as "a NoSQL, document-oriented database". Data lives in documents grouped into collections, and a document can hold its own subcollections. That shape is natural for chat rooms, user profiles and feeds, where you read one thing and its children.

It gets awkward when your data is a web of relationships. "Show every unpaid invoice for customers in this region, with their account manager" is one SQL query with joins. In a document store you usually copy data into several places so each screen can read it in one go, and then keep those copies in step. That is a real, ongoing cost, and in our judgment it is the strongest reason to start on Postgres when your data is relational.

Supabase and Neon are both Postgres, so the data model is the same: tables, joins, constraints and transactions. The difference is around the database. Supabase gives you auth, file storage, realtime and edge functions on one bill. Neon gives you a database that pauses when idle and can branch a copy for each pull request, and you add the rest. Firebase now offers Postgres too, through SQL Connect on Cloud SQL, defined in GraphQL. It is worth a look if you are set on Google Cloud, but it is a different product from Firestore with its own pricing.

Firebase vs Supabase Pricing: How Each One Meters

This is where comparisons go wrong. Each vendor counts a different thing, so the same app gets three differently shaped bills.

The same query, two different meters
// Firestore: a query is billed per document read, with a minimum of one.
const snap = await getDocs(query(collection(db, "orders"), where("status", "==", "open")));
// 240 open orders returned = 240 reads. A live listener bills again for each changed document.

-- Postgres on Supabase or Neon: the same query costs compute time, not reads.
select * from orders where status = 'open';
Billing rules from Firebase's Firestore pricing docs, read November 3, 2026. Postgres hosts bill for compute time and storage, not per row read.

Firebase bills per document operation. In us-central1, Firestore Standard edition is $0.03 per 100,000 reads, $0.09 per 100,000 writes and $0.01 per 100,000 deletes, after a free 50,000 reads, 20,000 writes and 20,000 deletes a day. Every query costs at least one read, and a live listener is charged a read each time a document in its results is added or changed. Sign-in is free to 50,000 monthly users, then Google's Identity Platform charges $0.0055 per user up to 100,000 and $0.0046 per user beyond that, for email, phone and social providers.

Supabase bills a plan, then compute. Pro is from $25 a month and includes 100,000 monthly users, an 8 GB database, 250 GB of egress and 100 GB of file storage, plus $10 of compute credit, which covers a Micro instance with 1 GB of RAM. Larger compute is $15 a month for 2 GB and $60 for 4 GB. Overage is $0.125 per GB of database, $0.09 per GB of egress and $0.00325 per user. The Free plan pauses a project after a week without activity and has no automatic backups, so treat it as a prototype tier.

Neon bills for compute while it runs. On the Launch plan a compute unit, which is 4 GB of RAM, costs $0.106 an hour, storage is $0.35 per GB-month, and 500 GB of egress is included per project, then $0.10 per GB. There is no monthly minimum. Compute scales to zero after five minutes idle, so a database busy for four hours a day pays for about four hours a day.

Estimate Your Own Monthly Bill

Choose a usage level or move the sliders. Each bill is broken into its lines, so you can see which meter drives it.

Backend cost estimator
Start from a usage level
Postgres compute size for Supabase and Neon, now Small
Estimated monthly bill, prices read November 3, 2026
Supabase$30
Pro with Small compute, always on
Pro plan$25
Small compute, after the $10 credit$5
Firebase$7
Blaze, pay as you go
6.0M reads, after the free quota$1
Stored data over 1 GB$0.60
Egress over 10 GB$5
Neon$21
Launch, pay as you go, scales to zero when idle
183 CU-hours at 0.5 CU$19
5 GB storage$2
Illustrative, not a quote. Firestore prices are Standard edition in us-central1, its daily free quotas are multiplied by 30, and its storage rate is our reading of Google's per-GiB figure as hourly, about $0.15 a GB-month. Egress uses Google's worldwide rate. Supabase and Neon are given the same compute size, Neon only for the hours it is busy. File storage, functions, SMS sign-in, backups beyond the plan, support plans and taxes are left out. Neon sign-in assumes Neon Auth; Firebase sign-in uses email or social providers.
Want these numbers checked against your real queries before you commit to Firebase? Send them to us →
Runs in your browser. Nothing is sent or stored. Prices read November 3, 2026. The compute size picked for each user count, and the read and write counts, are our illustrative assumptions. Your real queries decide them.

Three things stand out with our default inputs. At the prototype level, all three are free. At launch, with 10,000 monthly users, Firebase is cheapest at about $7, Neon about $21 if busy 12 hours a day, and Supabase $30. At 100,000 users, Firebase climbs to about $366, and $275 of that is sign-in fees above 50,000 users, while Supabase and Neon stay at about $91 to $93.

Read those results with care. The Firebase reads are an assumption, and an app with live listeners on busy screens can read far more than our default. Neon only wins on compute if the database is really idle part of the day. And Supabase's price includes things the others bill separately, such as file storage and edge functions.

Auth and Row-Level Security

All three let a browser or mobile app talk to the database directly. That is convenient and also the main risk, because the access rules are then your only defense.

On Supabase, those rules are Postgres row-level security policies. Its docs say to enable RLS on every table in an exposed schema, and that once it is on, no data is reachable through the API with a publishable key until you write policies. A secret key can bypass RLS, so it must never reach a browser. A typical owner policy looks like this:

alter table projects enable row level security;

create policy "owners read their projects"
on projects for select
to authenticated
using ((select auth.uid()) is not null and owner_id = (select auth.uid()));

On Firebase, Security Rules do the same job for Firestore, Storage and Realtime Database, using a separate rules language rather than SQL. On Neon, the Data API is a REST layer over your database, and its docs are plain that it has no permission layer of its own: a missing or wrong policy can expose a table to anyone with the endpoint URL. Neon Auth, built on Better Auth, stores users and sessions in a neon_auth schema inside your own database.

Whichever you choose, test the rules as if you were an attacker. Our production checklist has a one-line test for exposed tables, and our guide to multi-tenant SaaS architecture covers RLS policies across many customers in depth.

Vector Search for AI Features

If your product will search by meaning, for a support bot or recommendations, all three can store embeddings. Supabase and Neon use pgvector, the Postgres extension, which supports HNSW and IVFFlat indexes. Neon's docs list it on every plan with no add-on.

Firestore has built-in vector search with some firm limits: the index type must be flat, embeddings can have up to 2,048 dimensions, and a nearest-neighbor query returns at most 1,000 documents on Standard edition. Real-time listeners are not supported for these queries.

The bigger question is whether vectors live beside the rest of your data. On AskOrac, our AI support platform built on Next.js, Supabase and pgvector, we kept vectors in Postgres so chunks, documents and tenants share one database, and isolation, joins and backups stay simple, with no second system to keep in step. The trade-off, in the case study's words, is that filtered vector search needs careful tuning at scale. The multi-tenant guide tells that story in full.

Lock-In and Your Exit Path

Plan the exit before you need it. The three differ more here than anywhere else.

How you would leave each one
What you take with youWhat needs rework
SupabaseA standard Postgres dump of roles, schema and data, via its CLI. It can also be self-hosted with DockerFiles copied separately, edge functions redeployed, auth and storage policies recreated. Self-hosting drops branching, managed backups and point-in-time recovery
NeonPlain Postgres, with the usual Postgres toolsBranching and scale-to-zero, if your workflow relies on them
FirebaseA managed export to Cloud Storage in LevelDB log format, on the Blaze plan. It imports into another Firestore databaseMoving off Firestore means remodeling documents into tables and rewriting queries and rules
From each vendor's docs, read November 3, 2026. Effort is our judgment.

Postgres is the safer bet for leaving, because the database underneath is the same everywhere. Firestore lock-in is real but often acceptable: if the app is built around live sync and the data fits documents, you may never want to leave.

When to Use None of Them

In our judgment, skip all three in these cases:

  • You already run on a cloud with an operations team. A managed Postgres from your existing provider, with your own auth, keeps everything under one set of controls and contracts.
  • Long-running work is the product. Jobs that take minutes need workers and queues. A backend platform can store the results but should not be where the work runs.
  • Strict residency or contract terms. Check each region list and contract against your obligations before you build. If none fits, host it yourself.
  • Mostly analytics. Large scans over history belong in a warehouse, with the app database kept for transactions.

What We Run, and Why

Our three products all use Supabase. AskOrac runs on Next.js, Supabase and pgvector. BlurbBio uses Supabase for Postgres, auth and file storage. Shelf Inn, our home library app for iOS and Android, uses it for its database and sign-in.

It does not do everything, and we do not ask it to. In BlurbBio, reading a whole novel can take many minutes, far past a serverless request, so that work runs in separate Python services that the app starts and polls as jobs, with Upstash Redis for fast shared state. That is the pattern we would expect for any product with heavy background work, on any of these three.

Where This Is Heading

  • Safer defaults on Supabase. Its changelog says new tables in public are no longer exposed to the Data API without an explicit grant: the default for new projects from May 30, 2026, and for all existing projects from October 30, 2026. Existing tables keep their grants, so older apps still need a review.
  • Neon inside a larger company. Neon announced on May 14, 2025 that it would join Databricks, saying it would keep building the product. Watch the pricing page and terms over time, as with any acquisition.
  • Firebase is adding Postgres. As of November 2026, Firebase's pricing page lists Data Connect on Cloud SQL for PostgreSQL from $9.37 a month after a three-month trial. The Postgres versus documents choice no longer means leaving Google.
  • Auth is moving into your database. Neon's managed Better Auth keeps users and sessions in your own Postgres, so they branch with your data. Expect less separation between "auth provider" and "database" in new stacks.

What We Would Pick

For a new web product with relational data and a small team, we would start on Supabase Pro, write RLS policies for every table on day one, and keep heavy jobs outside it. If you only need a database and already have auth, Neon is cheaper when idle and its branching is excellent for teams shipping often. Choose Firebase for a mobile-first app built around live data that fits documents, and price your sign-in before you pass 50,000 users.

If you want a second opinion on your data model or the bill, our backend and API team designs and builds on all three. Send us your main screens and expected usage, and we will tell you which one we would choose, and why. If your product will also open its data to AI assistants, our guide to MCP servers is the next read.

Sources (24)
Written by the team that builds AskOrac, BlurbBio and The Bookish Elf. We design and build digital products, and we write about what we learn doing it. Facts checked against the sources listed, reviewed November 11, 2026.

Common questions

Is Supabase cheaper than Firebase?

It depends on usage. At small scale both can be free. In our illustrative estimate, Firebase is cheaper at 10,000 monthly users, while at 100,000 users Supabase costs far less, mainly because Firebase sign-in is charged above 50,000 monthly users. Prices are as of November 2026.

What is the difference between Supabase and Neon?

Both are Postgres. Supabase bundles auth, file storage, edge functions and realtime, with always-on compute. Neon is a serverless Postgres database billed by compute-hour that scales to zero when idle and supports branching, with optional managed auth.

How does Firebase pricing work?

Firestore bills per document read, write and delete, after a daily free quota of 50,000 reads, 20,000 writes and 20,000 deletes. Every query costs at least one read, and live listeners are charged when documents in their results change. Storage, egress and sign-in above 50,000 users are billed separately.

Can I migrate from Firebase to Supabase later?

Yes, but it is real work. Firestore's managed export uses a LevelDB format that imports into Firestore, so moving to Postgres means remodeling documents into tables and rewriting queries and security rules. Moving between Postgres hosts is much simpler.

Which is best for AI and vector search?

Supabase and Neon both support pgvector with HNSW and IVFFlat indexes, alongside the rest of your data. Firestore has built-in vector search with a flat index, up to 2,048 dimensions and at most 1,000 results per query on Standard edition.

Get a second opinion on your backend choice

Send us your main screens and expected usage. We'll tell you whether we'd build on Supabase, Neon or Firebase, show you the bill we'd expect, and flag what would be hard to change later.

Check my backend choice →