PostgreSQL
Database core
The heart of the stack. is the — all data, auth users, storage metadata, edge-function logs go through here.
Thirteen containers that together form a complete backend platform: , Auth, Realtime, Storage, , Studio UI, gateway. A concrete alternative to Firebase and AWS Amplify for startups and SaaS providers with GDPR requirements.
Compose excerpt — core services of the Supabase stack
services:
db:
image: supabase/postgres:15.8.1.085
container_name: supabase-db
healthcheck:
test: ["CMD", "pg_isready", "-U", "postgres"]
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
JWT_SECRET: ${JWT_SECRET}
volumes:
- db_data:/var/lib/postgresql/data
auth:
image: supabase/gotrue:v2.186.0
depends_on: { db: { condition: service_healthy } }
environment:
GOTRUE_DB_DRIVER: postgres
GOTRUE_DB_DATABASE_URL: postgres://supabase_auth_admin:...@db:5432/postgres
GOTRUE_JWT_SECRET: ${JWT_SECRET}
GOTRUE_MAILER_AUTOCONFIRM: "false"
GOTRUE_SMTP_HOST: mail.lernnet.com
rest:
image: postgrest/postgrest:v14.5
depends_on: { db: { condition: service_healthy } }
environment:
PGRST_DB_URI: postgres://authenticator:...@db:5432/postgres
PGRST_DB_SCHEMAS: public,storage,graphql_public
PGRST_JWT_SECRET: ${JWT_SECRET}
kong:
image: kong:2.8.1
ports: ["8000:8000", "8443:8443"]
volumes:
- ./volumes/api/kong.yml:/home/kong/temp.yml:ro
environment:
KONG_DECLARATIVE_CONFIG: /home/kong/kong.yml
KONG_LOG_LEVEL: infois not a single application — it is an orchestrated bundle of open-source components that together do what Firebase delivers as a proprietary service. Each component is individually replaceable.
Database core
The heart of the stack. is the — all data, auth users, storage metadata, edge-function logs go through here.
27k ★
Auto-REST API from the schema
Generates a full REST automatically from the schema. No backend code for CRUD — tables become endpoints.
2.5k ★
Authentication + user management
User management, email login, OAuth (Google, GitHub, ...), magic links, MFA. JWT-based sessions, compatible with every other component.
7.6k ★
WebSocket live updates
Reads logical replication and pushes changes via to connected clients. For live quizzes, collaboration, real-time dashboards.
1.3k ★
S3-compatible file storage
S3 for file uploads (PDFs, videos, images). Access control via row-level security. No backend code for auth logic.
103k ★
Browser UI for DB and auth
Browser interface for DB admin, SQL editor, schema designer, user management, storage browser. The official Cloud UI as a version.
44k ★
API gateway in front
Routes incoming HTTP requests to the right services (auth, rest, storage). Rate limiting, keys, JWT validation at the gateway level.
2.2k ★
Connection pooler
connection pooler for scale. Scales DB connections for thousands of parallel calls down to a manageable pool size.
Serverless edge functions
Deno-based runtime for custom logic — , GDPR audit triggers, external calls. Functions are written in TypeScript and rolled out globally.
11k ★
Image transformations on the fly
Resizes, crops, watermarks images at request time. Instead of pre-generating 4 sizes: one source file, arbitrary resolutions by URL parameter.
Log analytics + aggregation
Logflare aggregates logs from all services in a searchable interface. Important for production debugging and for GDPR audit logs.
Schema metadata API
Serves schema information (tables, columns, triggers) as a REST . Used by the Studio UI and can be addressed by custom migration tools.
Log shipper
Vector.dev as a log pipeline: collects container logs, transforms them and ships them to Logflare. A configurable replacement for classic log collectors.
The stack is a complete Backend-as-a-Service platform: as database, auto-generated REST and GraphQL APIs from the schema, auth with JWT sessions, storage with S3 , realtime via , in Deno. What you would otherwise build with 6 different AWS services runs here in one orchestrated container stack.
The decisive difference to Firebase or AWS Amplify: every component is open source (MIT or Apache-2.0), the stack runs fully on your own hardware. If needed, a component can be swapped individually (e.g. PostgREST for Hasura, or Kong for Caddy).
For a SaaS startup the choice of backend platform is existential. Firebase is technically excellent — but means vendor lock-in (proprietary APIs, US cloud, exponential cost growth with scale). AWS Amplify is comprehensive — but means managing 6+ services in parallel. Both mean: under GDPR requirements it gets complicated.
: every datum in German legal space on Hetzner EU. Standard as DB core — no vendor lock-in, every admin can contribute. At scale to 1,000+ active users, the stack typically becomes 70–90 % cheaper than Firebase. And if Inc. vanishes tomorrow: every component is open source and individually usable.
Client case study
EdTech startup for vocational education, 5-person founding team, platform for German vocational schools and chamber-of-commerce training centres. Launched 6 months ago with 12 school tenants, target 100+ in 12 months. Firebase would have been the obvious choice — but pupil data and learning progress have to stay GDPR-compliant in the EU. on Hetzner Cloud Frankfurt was the answer.
Concrete setups LernNet has been using for 6 months. Each pattern uses 2–4 components of the stack together — the synergies are the actual argument.
Six stack-level capabilities — properties that only emerge from the interplay of the 13 components.
Honest alternatives
Three alternatives for Backend-as-a-Service. is the most pragmatic choice, but the competitors each have their own strengths.
Market leader
Google, proprietary
Single binary
Gani Georgiev, MIT
AWS variant
Amazon, proprietary
Rule of thumb: with a GDPR requirement and knowledge, is the best place to be. Firebase is the fastest pick when data sovereignty does not matter (hobby projects, MVPs in the US market). Pocketbase makes sense for single-user setups (internal tools, hobby), but does not scale into multi-tenant SaaS. AWS Amplify pays off when you already live deep in AWS.
Pricing
License
All 13 components open source: PostgreSQL under the PostgreSQL Licence, GoTrue + PostgREST + Edge Runtime + Logflare under MIT, every other under Apache-2.0, Vector under MPL-2.0. For own use without redistribution no obligations.
Running costs
Production setup: VPS with 8–16 GB RAM, 200 GB SSD (Hetzner CCX23 from €30/month). Plus separate S3-compatible object storage for bucket data (Hetzner Object Storage from €5/month). RAM footprint of the complete stack: around 6 GB idle, 10 GB under load.
Effort
Initial setup with all 13 components via supabase/docker: 1 day. Production configuration (auth providers, SMTP, backup, monitoring): 2–3 days. Complete startup onboarding including schema design and frontend integration: 8–15 consulting days.
Important for clarity: Inc. (the company) offers a commercial cloud service from $25/month. The variant is not 'the same service for free' — it means own responsibility for updates, scaling, backup. For startups with GDPR requirements and 1,000+ users in the pipeline, this is the right choice. For a 100-user : take Cloud.
Related topics
as the platform, Caddy as the gateway in front, as the layer for external integrations:
Free intro call, no strings attached. In 30 minutes you'll know whether and how AI can help your business.