Supabaze

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.

$ npx create-supabaze-app@latest my-app
supabaze.com/dashboard/projects/nimbus-prod/auth/users
All users · 12,847 Confirmed · 11,902 Pending · 945 + Invite user Add user
uidemailrolelast seenprovider
a47e1cmira@ramp.ioadmin2m agogithub
b13d8fjun@frame.iowriter14m agogoogle
c920eenoa@linear.appviewer1h agoemail
d80c54kit@vercel.comadmin3h agogithub
e7f3b2riley@figma.comvieweryesterdayapple
f44a11avery@stripe.comwriter2d agogithub

Trusted by ambitious teams worldwide

1PasswordMozillaGitHubPwCCal.comResendLoops
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.

DDrizzle ORM
PPrisma
KKysely
SBsupabaze-js
RResend
Vercel
NNext.js
VVue · Nuxt
SSvelteKit
DDeno Deploy
OOpenAI
CAnthropic
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

Team

$599/org · mo

For companies running on Postgres.

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

Enterprise

Custom

For the largest workloads and procurement reviews.

  • Dedicated infrastructure
  • Custom regions + BYOC
  • Solutions engineer
  • 99.99% uptime SLO
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-xxl64px · 500 · 1.1 · -1.92pxBuild in a weekend
display-xl48px · 500 · 1.1 · -1.44pxPredictable. Honest. Open.
display-lg36px · 500 · 1.15 · -0.72pxJust write SQL.
display-md28px · 500 · 1.2 · -0.42pxCard title
heading-lg22px · 500 · 1.2 · 0Compact heading
body-lg18px · 400 · 1.55 · 0Marketing body lead text.
body-md16px · 400 · 1.5 · 0Default UI body. Reads as engineered, not decorative.
button-md14px · 500 · 1.0 · 0Start your project
caption13px · 400 · 1.45 · 0Helper text, footnote.
code14px · 400 · 1.5 · 0 · monoselect * 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

Buttons on canvas-night — code-block CTAs

Inputs — focus is a 2px emerald ring

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 ↗