
Migrating from Firebase to Supabase in 2026 typically costs $8,000 to $60,000 in engineer-weeks for a real production app, plus a one-time platform overlap of $50 to $500 while both stacks run in parallel. The biggest cost drivers are how much custom Cloud Functions logic you have, whether Realtime Database is load-bearing, and how strict your Firestore security rules are.
The data move itself is the cheap part. The expensive parts: schema design, Auth user import with password rehash, Cloud Functions rewrite from Node to Deno, FCM replacement (Supabase has none), Realtime model swap, security rules to RLS, and gradual cutover.
This post breaks the migration into the seven sub-projects that drive the budget, prices each one in engineer-weeks at real 2026 rates, and walks through three concrete scenarios with total dollar figures.
The Supabase docs make it look like three commands: firestore2json, json2supabase, done. The data move is maybe 10% of the real cost. The other 90% is work the official tooling doesn't touch:
.on() listeners. Supabase Realtime is Postgres logical replication plus Broadcast and Presence.Founders who scope only the data move end up three weeks behind. Scope all seven up front.
The most underestimated job. You're not converting JSON to SQL, you're modeling the same domain in a different paradigm. Senior engineer, 40 to 120 hours, depending on collection count and denormalization. Output is schema.sql, an ER diagram, and a per-collection migration plan. Expect 5 to 20 Firestore collections to become 8 to 25 Postgres tables.
Use the official firestoreusers2json tool to export users. Firebase uses scrypt; Supabase uses bcrypt. Two paths:
OAuth providers (Google, Apple, GitHub) get reconfigured with new redirect URIs; user records carry over by email match. Custom JWT claims map to user_metadata and app_metadata. Plan 30 to 80 hours including testing.
Firebase Functions run on Node in GCP. Supabase Edge Functions run on Deno. Every function needs a rewrite, not a port. Typical cost is 4 to 12 hours per function for a mid-level engineer; variance comes from third-party SDKs that ship Node-only. A team with 15 functions is looking at 60 to 180 hours plus testing.
Useful pattern: keep simple webhook handlers on Firebase Functions for 30 to 60 days during cutover.
If you used Firestore for realtime: Supabase Realtime tails the Postgres write-ahead log. Wire it up in 20 to 40 hours.
If you used the legacy Firebase Realtime Database (JSON tree with .on('value') listeners): redesign required. Supabase Realtime has three channels (Postgres Changes, Broadcast, Presence) and none is a JSON tree. Plan 40 to 100 hours.
Both are S3-compatible. The official storage-copy tool handles bucket-to-bucket. Update SDK calls, regenerate signed URLs, update CDN config. Budget 20 to 40 hours including frontend signed-URL swaps.
Firestore rules look like this:
match /orders/{orderId} {
allow read: if request.auth.uid == resource.data.userId;
}
The Postgres equivalent:
create policy "users read own orders"
on orders for select
using (auth.uid() = user_id);
Conceptually similar, syntactically different, no converter. A 200-line firestore.rules file is 20 to 60 hours to translate, test, and review. Spend senior hours here; this is the step teams botch.
Supabase has no push. You pick:
Most teams pick OneSignal. Plan 8 to 20 hours plus monthly fee.
Translating those hour ranges into engineer-weeks and dollar figures at real 2026 rates. A 40-hour week is the baseline.
| Component | Hours | Engineer-weeks | Tier needed | Cost (Cadence) |
|---|---|---|---|---|
| Schema design | 40-120 | 1-3 | Senior | $1,500-$4,500 |
| Auth migration | 30-80 | 1-2 | Mid/Senior | $1,000-$3,000 |
| Cloud Functions rewrite | 60-180 | 1.5-4.5 | Mid | $1,500-$4,500 |
| Realtime DB swap | 20-100 | 0.5-2.5 | Senior | $750-$3,750 |
| Storage migration | 20-40 | 0.5-1 | Junior/Mid | $250-$1,000 |
| Security rules to RLS | 20-60 | 0.5-1.5 | Senior | $750-$2,250 |
| FCM replacement | 8-20 | 0.2-0.5 | Junior/Mid | $100-$500 |
| Gradual cutover + testing | 40-80 | 1-2 | Mid/Senior | $1,000-$3,000 |
| Total | 238-680 | 6-17 | Mixed | $6,850-$22,500 |
Anything past $22.5k is custom: legacy Firebase Realtime Database with deeply-nested listeners, 30+ Cloud Functions, or a complex multi-tenant rules system. Those projects land in the $30k to $60k zone.
5 Firestore collections, 3 Cloud Functions, Firebase Auth with email + Google sign-in, no push notifications, no Realtime Database.
| Component | Hours | Tier | Cost |
|---|---|---|---|
| Schema design | 30 | Mid | $750 |
| Auth migration | 20 | Mid | $500 |
| 3 Cloud Functions | 18 | Mid | $450 |
| Storage | 10 | Junior | $125 |
| Security rules → RLS | 16 | Senior | $600 |
| Cutover + testing | 24 | Mid | $600 |
| Total | 118 hrs | $3,025 |
Booked as 1 mid engineer for 3 weeks on Cadence: $3,000 flat. Or one focused senior week ($1,500) plus a polishing mid week ($1,000) at $2,500.
12 collections, 10 Cloud Functions, Firebase Auth with three OAuth providers, FCM push, Firestore-based realtime feed, 300-line security rules file.
| Component | Hours | Tier | Cost |
|---|---|---|---|
| Schema design | 80 | Senior | $3,000 |
| Auth migration (rehash on login) | 50 | Senior | $1,875 |
| 10 Cloud Functions | 90 | Mid | $2,250 |
| Realtime feed (Postgres Changes) | 40 | Senior | $1,500 |
| Storage | 30 | Mid | $750 |
| Security rules → RLS | 40 | Senior | $1,500 |
| FCM → OneSignal | 14 | Mid | $350 |
| Cutover + testing | 60 | Senior | $2,250 |
| Total | 404 hrs | $13,475 |
Booked as 1 senior engineer + 1 mid engineer for 5 weeks: $12,500. Realistic with a 1-week buffer at $14,500.
30 collections, 25 Cloud Functions, custom JWT claims, Firebase Realtime Database for live cursors, complex tenant-isolation security rules, two iOS/Android apps with FCM.
| Component | Hours | Tier | Cost |
|---|---|---|---|
| Schema design + ER review | 120 | Lead | $6,000 |
| Auth + multi-tenant claims | 80 | Senior | $3,000 |
| 25 Cloud Functions | 200 | Mid | $5,000 |
| Realtime DB → Broadcast/Presence | 100 | Senior | $3,750 |
| Storage | 40 | Mid | $1,000 |
| Security rules → RLS (tenant) | 60 | Lead | $3,000 |
| FCM → OneSignal (iOS+Android) | 20 | Mid | $500 |
| Cutover + testing + monitoring | 100 | Lead | $5,000 |
| Total | 720 hrs | $27,250 |
Booked as 1 lead + 1 senior + 1 mid engineer for 6 weeks parallel: $27,000. Real teams add 30% buffer for production surprises, landing at $35k to $52k all-in.
| Approach | Cost | Timeline | Pros | Cons |
|---|---|---|---|---|
| DIY (founder + AI) | $0 cash, 6-12 wks calendar | 6-12 weeks | Cheapest, deepest learning | Slowest, highest cutover risk |
| US full-time hire | $30k-$60k | 3-5 wks plus 6 wks to hire | Long-term capacity | Overkill for a one-time project |
| Dev agency | $40k-$120k | 4-8 weeks | Project management included | Highest cost, slowest start |
| Freelancer (Upwork) | $5k-$25k | 4-10 weeks | Cheapest paid option | Vetting risk, no easy replacement |
| Toptal | $15k-$50k | 1-2 wks to start, 3-6 wks build | Vetted senior pool | Monthly billing, no AI-native baseline |
| Cadence | $500-$2,000/wk | 48-hour trial then ship | Every engineer AI-native, weekly billing, replace any week | Less suited to enterprise procurement |
Honest take: for the 10k MAU scenario, a full-time hire is silly and an agency is wasteful. DIY with Cursor and Claude Code is real if you have three weekends. Booking wins past about 80 hours of scope, which is most production migrations.
Every engineer on Cadence is AI-native by default, vetted on Cursor, Claude Code, and Copilot fluency in a voice interview. A schema redesign that takes a week by hand becomes a day with Claude drafting schema.sql. Same speed-up applies to RLS policies and Cloud Function rewrites. For a parallel breakdown, see our cost-to-migrate-from-Heroku-to-AWS guide.
Big-bang cutovers fail. The pattern that works:
Overlap costs $50 to $500 in extra platform fees depending on Blaze usage. The price of not losing user data.
Don't migrate if:
Migrate if:
OR queries without composite indexes).For teams crossing $500/month, payback is 6 to 14 months. Under $300/month, it's a hobby project.
Three steps:
schema.sql plus per-collection migration plan. No application code until reviewed. Bad schemas haunt you for years.If you don't have an engineer who has done this before, book one for week one. A senior on Cadence ($1,500/week) covers schema design and dual-write architecture; a mid ($1,000/week) handles bulk rewrites in weeks 2 to 5. Total spend lands $7,000 to $15,000 for most production apps, vs $40,000 for the agency version.
For parallel cost frameworks, see our deep dive on cost to build a recruiting platform and cost to add RAG to a SaaS app.
Need someone who has done this migration before? Book a senior engineer on Cadence at $1,500/week with a 48-hour free trial. Replace any week, weekly billing, no notice. Most production migrations finish in 4 to 6 weeks.
Two to twelve weeks of calendar time depending on app complexity. A 10k MAU side project is two to three weeks of focused work. A 100k MAU production app is four to six weeks with one senior and one mid engineer. A multi-tenant SaaS is eight to twelve weeks with a three-person team running in parallel.
Yes, using dual-write and gradual cutover. Run both backends in parallel for 30 to 60 days, migrate users at login (rehash the scrypt password to bcrypt during first sign-in), and flip a feature flag per user once verified. Done right, no user notices the migration.
Firebase Cloud Messaging (FCM) for push notifications has no Supabase equivalent. You will need OneSignal, Knock, Expo Push, or a self-hosted FCM proxy. Crashlytics, A/B Testing, Remote Config, and Firebase Performance Monitoring also lack direct replacements; teams typically pick Sentry, Statsig, and Sentry Performance respectively.
Only if your monthly Firebase bill is over about $300 to $500, you need Postgres-native queries, or you want to self-host. Below that threshold the migration cost outweighs the savings for one to two years. Above it, payback is typically 6 to 14 months.
At 100k MAU, Supabase Pro runs about $25 base plus usage (typically $50 to $200/month all-in). Firebase Blaze at the same scale frequently lands at $400 to $1,500/month depending on Firestore reads and Cloud Functions invocations. The Postgres-based pricing model is more predictable, which is a real reason teams move beyond the dollar savings.