
GitHub: https://github.com/supabase/supabase
Supabase 不是另一个 BaaS,而是把 Postgres 30 年的工程沉淀(RLS、pg_catalog、logical replication、pg_cron)当作 Lego 块,与 PostgREST、GoTrue、Deno Edge Functions 等开源组件组合,得到的「可独立运行又彼此 10x 放大」的开源 Firebase 替代品。
pg_dump 迁走。这是它值得研究的核心设计取舍。packages/pg-meta 把 pg_catalog 系统表 join 出 TS 类型——开源界罕见的「schema-driven 类型化」实现。
Studio Dashboard:SQL Editor / Table Editor / Auth / Storage / Edge Functions 五大核心模块的整合入口

浅色模式 Studio 截屏:左侧导航 + 中间 Table Editor

深色模式 Studio 截屏:项目级监控面板 + Realtime 频道管理
维度 | 数据 |
|---|---|
GitHub | https://github.com/supabase/supabase |
Star / Fork | 105,418 / 12,967 |
代码行数 | 1,359,208(TSX 34.2% + TypeScript 22.0% + JS 2.8% = TS 系 ~59%) |
文件数 | 9,707(含 384 个 JSON 锁文件/配置) |
项目年龄 | 80.8 个月(2019-10-12 至今) |
开发阶段 | 密集开发(最近 365 天 5,422 commits,2026 年再次提速到 500+/月) |
贡献模式 | 公司主导 + 社区广泛参与(2,016 贡献者;Top 10 占 46.8%,前两名 19.9%) |
热度定位 | 大众热门 / 行业事实标准 |
许可证 | Apache 2.0 |
Latest tag | v1.26.05(仅 54 tag;后端核心服务拆分到独立仓库各自打 tag) |
质量评级 | 代码良好 / 文档优秀 / 测试基本 / CI 完善 |
Firebase 是单一厂商闭源产品;单独用 Postgres 需要自己拼 REST / Auth / Realtime / Storage;自托管 BaaS(Appwrite / Pocketbase)跑在 MySQL / MariaDB / SQLite 上——丢掉了关系型 + 30 年 PG 生态。Supabase 的判断:Postgres 已经够强(RLS、logical replication、pg_stat、pg_catalog),缺的只是「让它们像 Firebase 一样被按 API 调用」的薄薄一层。
明确不做什么:不重写 Postgres;不做 NoSQL;不绑死任何前端框架;不藏 API(PostgREST 就是公开规范);不绑死云(self-host 是头等公民)。
Open-core 模式:核心产品完全开源 + 自托管完整可用;云上增值(Log Drains、Read Replicas、Point-in-time Recovery、每日 Backups、Compute Add-ons)。Managed Cloud(Free/Pro/Team/Enterprise 四档)是营收主力;开源是获客漏斗。Studio Dashboard 完全开源——是建立信任的关键。
pg_catalog 当作 ORM metadata(novelty 4 / practicality 5):packages/pg-meta/src/sql/tables.ts 把 pg_class / pg_constraint / pg_index / pg_policy join 起来,输出 TS 类型。Studio UI 完全是这个 schema 的可视化。取代 Prisma / Drizzle 的自有元数据层——schema 即类型。apps/studio/components/interfaces/Storage/StoragePolicies/PolicyDefinition.tsx 让用户在 UI 写 USING / WITH CHECK 表达式,底层就是 PG policy,policy 里直接调 auth.uid()。Policy Editor 把 RLS 暴露成表单——开源界首例把「行级权限 + 文件权限」统一在 DB 层的产品。packages/pg-meta/src/pg-format.ts 的 safeSql 是 tagged template literal,类型 SafeSqlFragment | UntrustedSqlFragment 在编译期区分;用户输入 SQL 必须显式 acceptUntrustedSql 才能拼接。Kysely / Drizzle 都未做到编译期区分。packages/ai-commands 用 @serafin/schema-builder DSL 定义 JSON schema,typeof schema.T 自动生成 TS 类型——LLM 输出是编译期类型,零运行时 schema 同步成本。Prompt 中嵌入 Postgres 偏好("use bigint identity, prefer text over varchar")。examples/user-management 提供 17 个前端框架变体(nextjs / nuxt3 / svelte / sveltekit / react / vue3 / flutter / swift 等),每个都是完整可跑子项目。这是降低 onboarding 成本的硬道理。packages/pg-meta/src/sql/*.ts)packages/pg-meta/src/pg-format.ts 的 safeSql / rawSql / acceptUntrustedSqlpackages/ai-commands/src/sql/functions.tspackages/ui(atomic 组件) + packages/ui-patterns(composite 复合模式)docker/docker-compose.yml 基础 + docker-compose.{caddy,envoy,logs,nginx,rustfs,s3}.yml 场景化apps/studio/evals/ + .github/workflows/braintrust-evals.yml)决策 | 取舍 | 适用场景 |
|---|---|---|
Postgres 作为单一权威数据源 + 一切组件复用 PG 生态 | 所有组件可用性绑死 Postgres;连接池压力大(→ Supavisor 存在的原因) | 任何用 Postgres 的项目都可借鉴「元数据也存 PG」 |
Studio 用 Next.js + Valtio store + React Query 双轨 | 双状态源导致同步复杂度上升(SQL Editor README 自己列出 4 处待重构) | SQL 编辑器场景专属,但「乐观更新 client store + 服务端数据 React Query」通用 |
SQL Template 用 tagged template literal (safeSql) | 多一层抽象;新人 onboarding 成本;IDE 跳转不如 .sql 文件直接 | 任何需要「参数化 SQL + 编译期检查」的项目 |
Storage Policy Editor 复用 RLS | RLS 学习曲线比 IAM 陡;性能与 policy 数量相关 | 任何「DB + 对象存储」需要权限统一的产品 |
Examples-as-Documentation(82 个子目录) | 维护负担重(每个框架升级要同步);比 docs 更容易过时 | SDK / BaaS 产品降低 onboarding 成本 |
Self-hosted 用 docker-compose + 多个 overlay | overlay 多了维护负担;compose schema 与 managed cloud 有 drift(issue #26785 / #16857 反映自托管是当前痛点) | 「compose 主文件 + overlay」拆分对任何复杂本地栈通用 |
维度 | Supabase | Firebase | Appwrite | Pocketbase | Hasura |
|---|---|---|---|---|---|
Stars | 105K | 闭源 | 56K | ~45K | ~30K |
数据库 | Postgres | Firestore (NoSQL) | MariaDB | SQLite | Postgres(无 DB 层) |
自托管 | ✅ 完整可用 | ❌ 基本不可行 | ✅ 简单 | ✅ 单二进制 | ✅ |
关系型 + 生态 | ✅ PostGIS / pgvector / TimescaleDB | ❌ | ❌ | ❌ | ✅ |
客户端 SDK 数量 | 9 语言 | 顶级 | 28+ | Go / JS | GraphQL 客户端 |
Auth / Storage / Realtime / Functions 全套 | ✅ | ✅ | ✅ | 仅 Auth + DB + 文件 | ❌ 仅 GraphQL 网关 |
多区域 / 企业级 IAM | ✅ | ✅ BigQuery 集成 | 一般 | 弱 | ✅ |
「Postgres 时代的 Firebase」——把 Postgres 当事实标准的 BaaS 入口。开放核心(open core)+ 云增值。在数据基础设施层与 Neon / PlanetScale / TimescaleDB 同台竞争 BaaS 层。
to-be-cleaned/Storage/ 旧路径已删除;studio/ 与 apps/studio/、web/docs/ 与 apps/docs/ 重叠反映多次重构packages/pg-meta/src/sql/*.ts(pg_catalog-as-ORM 模式)packages/pg-meta/src/pg-format.ts(safeSql 编译期防注入)packages/ai-commands/src/sql/functions.ts(SchemaBuilder + TS inference)apps/studio/components/interfaces/Storage/StoragePolicies/PolicyDefinition.tsx(RLS as Permission)apps/studio/components/interfaces/SQLEditor/README.md(团队主动写的架构决策 + 技术债清单——金矿)pg_catalog-as-ORM 模式做一个 Postgres 直连的 ORM 替代 Prisma / DrizzleSchemaBuilder + TS inference 做一个 LLM function calling 的强类型化框架RLS as Permission 模式做 DB + 对象存储统一的权限中间件资源 | 链接 |
|---|---|
DeepWiki | https://deepwiki.com/supabase/supabase(已收录,索引至 commit a5f4a59e,2026-04) |
官方文档 | https://supabase.com/docs |
在线 Studio | https://supabase.com/dashboard |
架构原理 | https://supabase.com/docs/guides/getting-started/architecture |
设计哲学 | https://supabase.com/docs/guides/getting-started/architecture#principles |
关联论文 | 无(工程产品,无学术输出) |