Open source Firebase alternatives: Supabase, Appwrite and PocketBase
Three open source backends that replace Firebase's database, auth, storage and realtime features, compared by license, database and how hard each is to self-host.
Firebase bundles a database, authentication, file storage, realtime updates, functions and hosting behind one SDK. The open source alternatives bundle the same pieces, but each makes a different bet on the database underneath, and that bet matters more than any feature list. We checked licenses and project status on October 16, 2026.
Quick comparison
| Backend | License | Database | Self-hosting effort | Best for |
|---|---|---|---|---|
| Supabase | Apache-2.0 | PostgreSQL | Several services with Docker Compose | Apps that want SQL and relational data |
| Appwrite | BSD-3-Clause | MariaDB, behind Appwrite’s own API | One Docker install | Teams who want Firebase-style APIs and many SDKs |
| PocketBase | MIT | SQLite, embedded | One executable file | Small apps, prototypes and side projects |
Supabase: Firebase built on Postgres
Supabase gives you a full PostgreSQL database with auto-generated REST and GraphQL APIs, authentication, row-level security, file storage, realtime subscriptions, edge functions and vector search through pgvector. Because it is ordinary Postgres, you can use SQL, migrations, joins and any Postgres tool, and you can leave Supabase without rewriting your data layer.
The hosted service is the easy path. Self-hosting is fully supported but means running several services (the database, API gateway, auth, storage, realtime and studio), so plan for upgrades and backups. Choose Supabase when your data is relational or you already know SQL.
Appwrite: the most Firebase-like developer experience
Appwrite feels closest to Firebase in daily use. It offers a document-style database API, authentication with many sign-in providers, storage with image transformations, functions in many languages, realtime events, messaging and static site hosting, all managed from one console. It has official SDKs for web, Flutter, Android, iOS and several server languages.
Self-hosting is a single Docker installation, and the project is BSD-3-Clause licensed. Choose it when you want Firebase’s style of building, with collections and SDK calls rather than SQL, on your own server.
PocketBase: a whole backend in one file
PocketBase is a single Go executable with an embedded SQLite database, authentication, file storage, realtime subscriptions and an admin dashboard. You download one file, run it, and have a backend. You can extend it with JavaScript hooks or use it as a Go framework.
That simplicity is the point and the limit. SQLite on one server handles far more traffic than most side projects ever see, but there is no built-in horizontal scaling. Read the changelog before upgrading, because the project has made breaking changes between versions. Choose PocketBase for prototypes, internal tools and small production apps.
How to choose
- Your data is relational, or you want to keep the option to leave: Supabase.
- You want Firebase-style APIs and broad mobile SDK support: Appwrite.
- You want the smallest possible thing to run and back up: PocketBase.
Whichever you choose, export your data and restore it into a fresh instance before launch. Testing your API? See our Postman alternatives. You can browse every project in the directory.
In the directory
Supabase on GitHub (opens in a new tab)
Start with Postgres. Add authentication, storage, realtime updates, and APIs around a database you control.
Good to know +
Good for: Developers who want a SQL-based application backend.
Self-hosting means managing several services.