How Supabase assembled a backend from open-source tools
Supabase gives developers a Postgres database with auth, APIs, file storage, realtime and edge functions around it. Rather than writing everything from scratch, it combines existing open-source tools in several languages and builds only what is missing, all hosted on AWS.
Supabase's rule is simple: if a tool and its community already exist under an MIT, Apache 2 or similar license, they use and support it; if not, they build it and open-source it.
That is why the stack is polyglot: PostgREST is written in Haskell, Auth (GoTrue) in Go, Realtime and Supavisor in Elixir, and Storage and postgres-meta in TypeScript.
Postgres is the core of every project and is never abstracted away, so users get full access. Each piece is meant to work on its own with nothing but a Postgres database, and Supabase prefers upstreaming features to Postgres over running a custom fork.
The goal is portability: standard tools like pg_dump keep users free to leave, and the cloud product stays compatible with self-hosting.
Supabase used to offer PgBouncer for connection pooling, but it is single-threaded and hard to scale. In 2023 the team built Supavisor in Elixir, designed for multi-tenancy so one shared cluster serves many projects, and tested it with a million connections.
Supabase then deprecated PgBouncer and moved projects to Supavisor.
The architecture now puts Envoy in front of the services as the API gateway. In August 2026 self-hosted Supabase switched its default gateway from Kong to Envoy, keeping Kong as an opt-in path; hosted projects were not affected.