Skip to main content
BlueForge LogoBlueForge
Back to blog
EngineeringDraft2 min read

Why We Rebuilt Our Stack: Moving from Firebase to Supabase for QuestLang

QuestLang launched on Firebase in late 2025. It was the right choice for a small team moving fast — Firebase's out-of-the-box auth, database, and hosting let us ship without building infrastructure.

But by February 2026, with 50,000+ users across Thai and Nordic groups, Firebase's cracks were showing.

**The Pricing Problem**

Firebase's pricing model is designed for apps with moderate usage. When your app goes viral — or when you need to run large analytical queries for learning effectiveness research — the costs become unpredictable.

Our Firestore reads were running $8,000/month for a free-tier-adjacent app. Cloud Functions cold starts were adding 2-3 seconds to API calls. And Firebase's SQL support (BigQuery export) required additional tooling we didn't want to maintain.

**Why Supabase**

We evaluated Firebase alternatives: PlanetScale, Neon, Supabase, and MongoDB Atlas. Supabase won on a few key factors:

1. **PostgreSQL**: Complex learning analytics queries (cohort retention, skill tree progression, vocabulary mastery curves) are much easier in SQL than NoSQL. 2. **Row Level Security**: Multi-tenant data isolation with fine-grained permission policies is built in. 3. **Edge Functions**: Deno-based edge functions with cold start times under 100ms. 4. **Realtime subscriptions**: The same mechanism for data sync powers our multiplayer features in Adventure Craft. 5. **Price predictability**: Supabase's tiered pricing with included usage is much more predictable than Firebase's consumption model.

**The Migration**

We ran Firebase and Supabase in parallel for 6 weeks. QuestLang wrote to both simultaneously while we validated data integrity. The migration was largely automated — we wrote a Firestore-to-PostgreSQL sync service that ran nightly.

The hardest part wasn't data migration — it was Functions. We had 14 Cloud Functions handling everything from webhook processing to AI content generation. Converting these to Supabase Edge Functions took 3 weeks and required significant refactoring.

**Results**

After migration, our database costs dropped 60%. API response times improved by 40% (no more cold starts). And our analytics queries — which previously required overnight BigQuery jobs — now run interactively.

More importantly, Supabase's multi-tenancy model has made it possible to offer QuestLang groups as white-label products. SEAsiaQuest runs on the same infrastructure as ThaiQuest, with isolated data and separate branding.

Stay in the Loop

Get early access to our products and be the first to know when we launch.

Join the Waiting List