# Build in a weekend.
Scale to millions.

Supabaze is the open-source Firebase alternative. A dedicated Postgres database, authentication, instant APIs, edge functions, realtime, storage, and embeddings — all behind one client SDK.

Start your project Request a demo
$ npx create-supabaze-app@latest my-app
supabaze.com/dashboard/projects/nimbus-prod/auth/users
Database
▾Tables
▸SQL editor
▸Functions
▸Replication
Auth
●Users
·Providers
·Policies
·Email templates
Storage
·Buckets
·Policies
Vector
·Collections
·Indexes
All users · 12,847 Confirmed · 11,902 Pending · 945 + Invite user Add user
uid email role last seen provider
a47e1c mira@ramp.io admin 2m ago github
b13d8f jun@frame.io writer 14m ago google
c920ee noa@linear.app viewer 1h ago email
d80c54 kit@vercel.com admin 3h ago github
e7f3b2 riley@figma.com viewer yesterday apple
f44a11 avery@stripe.com writer 2d ago github

Trusted by ambitious teams worldwide

1Password Mozilla GitHub PwC Cal.com Resend Loops
Postgres, made painless

## Everything you need to build a product.

A complete backend in a weekend. Dedicated Postgres database, instant REST and GraphQL APIs, authentication, edge functions, realtime subscriptions, file storage, and vector embeddings.

### Postgres database

A dedicated Postgres database per project. Every project is a full Postgres database — no proprietary query language, no surprise lock-in.

Learn more

### Authentication

Email, magic link, OAuth, SSO. Row-level security policies live in the database, so the backend can never disagree with the rules.

Learn more

### Edge functions

TypeScript on Deno, deployed to 35+ regions. Cold starts under 50ms. Logs and traces native to the platform.

Learn more

### Realtime

Subscribe to Postgres changes over WebSockets. Build presence, broadcast, and multiplayer features without a separate pub-sub layer.

Learn more

### Storage

S3-compatible object storage with image transformations on the edge. Signed URLs, RLS-aware buckets, and one-line client uploads.

Learn more

### Vector embeddings

pgvector built in. Store embeddings next to your data, query them with SQL, and skip the second-database problem entirely.

Learn more

### Instant APIs

REST and GraphQL APIs auto-generated from your schema. Add a column, ship a new endpoint — no codegen step.

Learn more

### Branching

Preview branches per Git PR. Each branch is a real Postgres database with seed data — review schema changes before they hit prod.

Learn more
SQL Editor

## Just write SQL.

No ORM. No abstraction layer. No vendor query language to learn. The same SQL you'd write against any Postgres database — and the editor knows your schema.

### Pick a table. Build the query. Ship the API.

The visual editor and SQL editor are two views of the same canvas. Auto-completion knows your column types, your enums, your row-level security policies — and warns you before a policy blocks the read.

- Schema-aware completion + linting
- One-click "save as" — turn a query into a function
- RLS preview — see exactly what a given user can read

Open the SQL editor
query.sql policies.sql migration_017.sql

    -- Find power users with sub-100ms p50 latency
    select
      u.email,
      count(s.id) as sessions,
      percentile_cont(0.5) within group (
        order by s.latency_ms
      ) as p50
    from auth.users u
    join public.sessions s on s.user_id = u.id
    where s.created_at > now() - interval '7 days'
    group by u.email
    having count(s.id) > 10
    order by p50 asc
    limit 25;

● 25 rows returned 128 ms

### Authentication that respects the database.

Row-level security is not an afterthought — it's the only way Supabaze authorizes data access. The same policy that gates a SELECT also gates the auto-generated API. The backend can never disagree with itself.

- Email, magic link, OAuth, SSO, anonymous, passkeys
- RLS policies enforced in Postgres, not the SDK
- JWT-based — works with every Postgres client

Read the auth guide
app.ts policies.sql

    // One client, every backend feature
    import { createClient } from "@supabaze/supabaze-js";

    const sb = createClient(url, anonKey);

    // Sign in with GitHub
    await sb.auth.signInWithOAuth({
      provider: "github",
      options: { redirectTo: "/dashboard" }
    });

    // Query is RLS-aware automatically
    const { data: posts } = await sb
      .from("posts")
      .select("id, title, author:auth.users(email)")
      .eq("published", true)
      .order("created_at", { ascending: false })
      .limit(10);

● 200 OK · 10 rows 42 ms
1.7M+
Databases launched
99.99%
SLA on Team plan
35
Edge regions
< 50ms
Cold start p50
Integrations

## The Postgres ecosystem, plus your stack.

Bring your own ORM, your own CI, your own AI provider. Supabaze is a Postgres database, so anything that speaks Postgres works on day one.

D Drizzle ORM
P Prisma
K Kysely
SB supabaze-js
R Resend
▲Vercel
N Next.js
V Vue · Nuxt
S SvelteKit
D Deno Deploy
O OpenAI
C Anthropic
Pricing

## Predictable. Honest. Open.

Start free. Pay for what you use. No seat minimums, no procurement gates until you genuinely need them.

### Free

$0

For hobby projects and weekend experiments.

- 500 MB database
- 2 free projects
- 50K monthly active users
- Community support

Get started free
Most popular

### Pro

$25/project · mo

For production apps with real traffic.

- 8 GB database included
- 100K MAU + $0.00325 / MAU
- Daily backups · 7-day PITR
- Email support

Choose Pro

### Team

$599/org · mo

For companies running on Postgres.

- Everything in Pro
- SOC 2 · HIPAA-ready
- SSO · audit logs
- 99.99% SLA

Choose Team

### Enterprise

Custom

For the largest workloads and procurement reviews.

- Dedicated infrastructure
- Custom regions + BYOC
- Solutions engineer
- 99.99% uptime SLO

Contact sales
Design system

## A monochrome system with one chromatic event.

Source: DESIGN.md. White canvas commitment. Single emerald primary. Circular-style display at weight 500 with negative tracking. 6px square-ish button radii.

### Color

Brand — single chromatic event

primary
#3ecf8e
primary-deep
#24b47e · pressed
primary-soft
#4ade80 · chart
ink · on-primary
#171717
canvas · on-dark
#ffffff
canvas-night
#1c1c1c · code

Ink ladder — weight, not hue, carries hierarchy

ink
#171717
ink-secondary
#212121
ink-mute
#707070
ink-mute-2
#9a9a9a
ink-faint
#b2b2b2
canvas-soft
#fafafa

Hairlines — the brand's chrome

hairline
#dfdfdf
hairline-strong
#c7c7c7
hairline-cool
#ededed
hairline-cool-2
#efefef
hairline-cool-3
#d4d4d4
canvas-night-soft
#202020 · nested chrome

Accents — reserved for chart points and integration logos only

accent-purple
#6b01c2
accent-violet
#644fc1
accent-indigo
#054cff
accent-pink
#c7007e
accent-tomato
#ff2201
accent-yellow
#ffdb13

### Typography

Circular is the proprietary humanist sans. Inter at weight 500 is the open-source substitute used here. System mono for every code block — Menlo / Monaco / Consolas. Body never exceeds weight 500; the engineered mid-weight is the brand.

display-xxl 64px · 500 · 1.1 · -1.92px Build in a weekend
display-xl 48px · 500 · 1.1 · -1.44px Predictable. Honest. Open.
display-lg 36px · 500 · 1.15 · -0.72px Just write SQL.
display-md 28px · 500 · 1.2 · -0.42px Card title
heading-lg 22px · 500 · 1.2 · 0 Compact heading
body-lg 18px · 400 · 1.55 · 0 Marketing body lead text.
body-md 16px · 400 · 1.5 · 0 Default UI body. Reads as engineered, not decorative.
button-md 14px · 500 · 1.0 · 0 Start your project
caption 13px · 400 · 1.45 · 0 Helper text, footnote.
code 14px · 400 · 1.5 · 0 · mono select * from auth.users limit 10;

### Radius

Buttons live at r-sm (6px) — square-ish, never pill. Cards live at r-lg (12px). Pills (r-full) are reserved for tags and avatars.

xs
4px
sm
6px · buttons
md
8px · inputs
lg
12px · cards
xl
16px
full
9999px · pills

### Components

Buttons on white canvas

button-primary-green button-secondary-outline button-link

Buttons on canvas-night — code-block CTAs

button-primary-green button-on-dark button-secondary-on-dark

Inputs — focus is a 2px emerald ring

text-input · default
text-input · focused

Cards & containers

##### card-feature-light

White canvas + 1px hairline. 12px radius. The default container — flat, calm, never shadowed at rest.

##### card-pricing-featured

Inverted dark fill for the featured pricing tier. Green is reserved for buttons, not the surface.

// code-block
select count(*)
from auth.users;
→ 12,847

Tags & pills

pill-tag-green pill-tag-soft live · with-dot
View DESIGN.md ↗