A Firebase Alternative You Actually Own
Firebase gives apps auth and a data API fast — and ties you to Google’s platform and pricing. Simple Stack is the same for your app: provider sign-in, a token-gated JSON API and per-user data, self-hosted in PHP.
Firebase is the default app backend because it is fast to start: Authentication, Firestore and the SDKs do a lot for you. The cost is platform lock-in — your auth, your data model and your bill all live inside Google’s ecosystem, and migrating off later is real work. Simple Stack’s app-backend profile gives a mobile or web app the same essentials — Apple/Google/magic-link sign-in, a bearer-token JSON API and per-user data — but as plain PHP and a SQLite file on a server you control. Check Firebase’s current pricing for the managed comparison.
Self-hosted PHP vs Firebase
| Simple Stack | Firebase | |
|---|---|---|
| Hosting model | Self-host, your VPS | Google-hosted |
| Apple / Google / magic-link auth | ||
| Bearer-token JSON API | ||
| Per-user data store | SQLite | Firestore |
| Stripe billing built in | × | |
| Platform lock-in | × | ~ |
| Cost scales with usage | × | ~ |
| Realtime sync out of the box | × |
- Verified provider authApple/Google id_tokens are checked against the live JWKS keys — audience, issuer and expiry — before a token is issued.
- No lock-inYour server, your data, your auth. Move it, back it up or migrate it without leaving a platform.
- Fixed-cost hostingA small VPS costs the same at 100 or 100,000 requests — no per-read or per-write metering.
- Honest trade-offYou do not get Firestore realtime sync or the managed SDKs. If realtime is core, Firebase is the right call.
Common questions
The app does the native Apple or Google sign-in, then exchanges the provider id_token for a bearer app_token it stores and sends on every request. The full flow is in APP_BACKEND.md, and the mobile app backend page walks the endpoints.
Poke the app backend before you buy.
The app-backend demo runs the real auth and API — no card, nothing saved.