// Migration Guide · 2026
Migrate from Firebase to Runsite
Firebase ties you to Google's ecosystem and uncapped Blaze billing. Runsite reads your firebase.json and gives you a portable full stack — web service, managed PostgreSQL and Redis — in Frankfurt, with a true hard spending cap.
- ~20 min
- typical migration
- Escape vendor lock-in
- keep your workflow
- Keep Firebase running
- until you cut over
// the mental model
Every Firebase concept has a Runsite home
Firebase spreads your app across Hosting, Functions, Firestore and Auth. Runsite maps each onto portable, standard infrastructure you fully control.
{
"hosting": {
"public": "dist",
"rewrites": [
{ "source": "/api/**", "function": "api" }
]
},
"functions": { "source": "functions" }
} - →Firebase HostingfirebaseStatic / SSR web service autopublic dir served directly; SSR supported
- →Cloud FunctionsfirebaseAlways-on web service autoRun your API as a persistent service, no per-invocation billing
- →FirestorefirebaseManaged PostgreSQL you doModel your data relationally; export and import once
- →Realtime Database / cachefirebaseManaged Redis you doRepoint ephemeral/state reads at managed Redis
- →Firebase configfirebaseEnvironment variables autoNon-secret config imported; secrets pasted once
- →Hosting rewritesfirebaseRouting rules you doRecreate /api/** rewrites as service routes
// step by step
From Firebase to live in the EU
Six steps. Most of them take seconds. Firebase keeps serving traffic until you flip your DNS.
- 1
Create a Runsite project
~30 secSign in at runsite.app and create an empty project. No credit card, no sales call.
- 2
Connect your Git repo
GitHub · GitLab · BitbucketAuthorize GitHub, GitLab or Bitbucket. Runsite scans the selected branch for your firebase.json and detects the stack automatically.
- 3
Review the detected setup
Full preview before provisioningRunsite lists every service, database and env var it found and how each maps onto a Runsite resource. Tweak build or start commands inline. Nothing is created yet.
- 4
Provision in Frankfurt
One click · eu-centralCreate the whole stack in one step. Cross-resource env vars are wired up for you, and you get fresh database and Redis credentials in the EU.
- 5
Drop in your secrets
Secrets stay out of GitSecret values are never read from your repo. Paste API keys and tokens once in the dashboard; they're encrypted at rest and never logged.
- 6
Push to go live
Live in < 2 mingit push and your app builds and deploys in the EU in under two minutes. Point your custom domain when ready. Firebase keeps running until you cut over.
// no surprises
What moves on its own — and what you touch
Honest about the boundaries. The supported stack is recreated in one click; a short list needs a human, and Runsite flags every item.
Imported automatically
- ✓ Static / SSR hosting build output
- ✓ Build and start commands from your repo
- ✓ Non-secret config values
- ✓ Custom domains (after DNS cutover)
You handle once
- → Firestore data — model relationally and import into PostgreSQL
- → Cloud Functions with stateful needs — recreate as services
- → Auth — migrate users to your chosen auth provider
- → Secret config — paste once after import
// firebase problems → runsite solutions
Common Firebase frustrations — sound familiar?
Every Firebase frustration, solved.
Firebase problem
"Firebase locks me into Google"
Firestore, Cloud Functions, Firebase Auth — proprietary services that don't work outside Google Cloud.
Runsite solution
Open standards everywhere
PostgreSQL, Docker, S3. Standard tools that work on any platform.
Firebase problem
"GDPR compliance is complicated"
Firebase requires a Google Cloud DPA, data residency configuration, and careful SDK setup for EU compliance.
Runsite solution
GDPR by default
EU entity. EU servers. No configuration needed. Compliant from day one.
Firebase problem
"Costs spike with traffic"
Firebase charges per document read/write. A viral moment can mean a massive surprise bill.
Runsite solution
Fixed pricing + spending caps
Predictable monthly bills with hard limits. Traffic spikes don't break the bank.
// comparison
Runsite vs Firebase
Side-by-side. No marketing fluff — just facts.
| Feature | Runsite | Firebase |
|---|---|---|
| Vendor Lock-in | ✓ Open standards, Docker | ✗ Proprietary SDKs |
| EU Data Centers | ✓ Frankfurt (eu-central) | ✓ europe-west regions |
| GDPR Compliance | ✓ EU entity, full compliance | Complex DPA required |
| Backend Hosting | ✓ Full containers | Cloud Functions only |
| Database | ✓ Standard PostgreSQL | Firestore (proprietary) |
| Pricing Transparency | ✓ Fixed plans | Pay-per-read/write |
// migration questions
Migrating from Firebase, answered
Can I escape Firebase's uncapped Blaze billing?
Yes. Runsite bills in EUR with a true hard spending cap, so usage physically cannot exceed your limit. This is the opposite of Blaze, where per-operation Firestore charges and function invocations have no upper bound.
How do I migrate Firestore to Runsite?
Runsite uses managed PostgreSQL, so you model your Firestore collections relationally and import the exported data. This is the largest part of a Firebase migration, but it removes per-read/per-write billing and document-database lock-in.
What happens to my Cloud Functions?
Your function code runs as an always-on web service instead of per-invocation serverless. Most HTTP handlers port over with minor changes, and you stop paying per invocation.
Is there downtime migrating from Firebase?
No. Firebase keeps serving traffic while you build and verify on Runsite, then you switch DNS to cut over. Plan the Firestore data import as a one-time step before cutover.
Why migrate from Firebase to Runsite?
Runsite gives you portable, standard infrastructure in the EU — no Google lock-in, a Frankfurt region for GDPR, predictable EUR pricing with a hard spending cap, and a permanent free tier.
Leave Firebase behind
Bring your firebase.json. We'll handle the rest — in Frankfurt.
Start your migration →