Postgres-native backend platform bundling auth, realtime subscriptions, storage, and edge functions behind a single API gateway. The open-source Firebase alternative.
Firebase / yr$300
Self-hosted / yr~$55
You keep$245/yr
Key facts
CategoryBackend & BaaS
LicenseApache-2.0
StackPostgreSQL, TypeScript
Min RAM4096 MB
Dockeryes
Difficulty4 / 5
Our recommendation
Pick Supabase when you want a Postgres-native backend — auth, realtime, storage, and edge functions on top of a real relational database you can query and back up like any other Postgres install. Budget a genuine box: the official Compose stack is a dozen-plus containers and wants 4 GB of RAM. If you only need auth and a data API on SQLite, PocketBase is dramatically less to run.
What you need
Any VPS with at least 4096 MB of RAM
A domain you control — most self-hosted setups need HTTPS in front of them
About the better part of a day
Install with Docker Compose
Save this as compose.yml and run docker compose up -d:
# Supabase — official self-hosting via Docker Composegit clone --depth 1 https://github.com/supabase/supabasecp -rf supabase/docker/* supabase-project && cp supabase/docker/.env.example supabase-project/.envcd supabase-project# generate real secrets for POSTGRES_PASSWORD, JWT_SECRET, etc. in .env before startingdocker compose pulldocker compose up -d # → http://SERVER_IP:8000 (Studio via Kong)
Supabase self-hosted is the same open-source engine as the cloud product, but you inherit what the paid platform quietly handles for you:
non-negotiableYou are the backup story. Self-hosted Supabase has no built-in automated backups or point-in-time recovery — that's a paid-cloud feature; plan your own pg_dump or WAL-archiving schedule from day one.
non-negotiableStudio isn't full parity. The bundled admin UI trails the hosted dashboard on some features — expect to drop into psql or the API for anything Studio doesn't cover.
non-negotiableIt's a real container stack. Kong, GoTrue, PostgREST, Realtime, Storage, and Postgres all run separately — docker compose up is one command, but keeping a dozen-plus services patched and healthy is the ongoing job.