Supabase 常被称作「开源版 Firebase」:它在一套界面里给您 Postgres 数据库 + 用户认证(Auth)+ 对象存储 + 实时订阅 + Edge Functions。对想做小产品后端、又不想自己拼 MySQL+Redis+登录系统的个人开发者,免费层几乎是「开箱即用」的最优解——注册即用、不绑卡也能跑起来。
本篇是实测向教程,重点在「免费层到底给多少」和「哪里会踩坑」。注册网址:supabase.com。支持用 GitHub 账号直接登录,无需信用卡。
一、免费层额度清单(先看清边界)
Supabase 的免费套餐叫 Free plan,下面这些额度是 2026 年实测到的量级,做产品前心里先有数:
| 资源 | 免费层额度 | 说明 |
|---|---|---|
| 数据库(Postgres) | 500 MB | 含数据 + 索引,超出需升级 |
| 对象存储(Storage) | 1 GB | 放图片 / 文件,另有带宽限制 |
| 出口带宽 | 2 GB / 月 | 用户下载产生的流量,图片站很快超标 |
| Auth 月活用户(MAU) | 50,000 | 这是 Supabase 最大卖点,5 万月活前不花钱 |
| Edge Functions | 500,000 次 / 月 | 跑轻量后端函数够用 |
| 项目数 | 2 个 | 超出需删除或升级;非活跃项目会被自动暂停 |
| 数据库连接 | 共享算力 + 并发上限 | Serverless 必须走连接池,详见踩坑 5 |
⚠️ 踩坑 1 — 免费层项目会「休眠」。一个项目 7 天无活跃请求会被自动暂停(paused),再次访问时需要几秒冷启动唤醒。低频次的小工具尤其明显:用户第一次打开会卡一下。对策:用外部定时请求(如免费 Cron 或 UptimeRobot)保活,或接受首次延迟。
二、适合用它做什么
- 小产品 / MVP 后端:用户系统 + 数据库 + 文件存储一站搞定,不用自己搭。
- Firebase 的开源替代:数据存在您自己的 Postgres 里,不锁定、可导出。
- 和前端搭配做全栈:前端放 Vercel / Cloudflare Pages(本站首页就是这么部署的),后端与数据放 Supabase。
- 不适合:超大数据库、高并发写、需要长期不休眠的生产服务——这些该上付费层。
三、开通全流程(实测步骤)
- 注册 / 登录。打开 supabase.com,点 Sign Up,可用 GitHub 账号一键登录,无需信用卡。
- 新建组织(Organization)。首次会要求建一个组织,名字随意(如您的昵称或项目名),区域选「离用户近」的,如
Singapore、Tokyo、Frankfurt。 - 新建项目(Project)。填项目名、设一个数据库密码(务必记下),选区域,套餐保持 Free。点 Create,初始化约 30–60 秒。
- 拿到密钥。进项目后左侧
Project Settings → API,会看到:Project URL(形如https://xxxx.supabase.co)anon public key(浏览器端用,可公开)service_role key(服务端用,绝不能暴露到前端)
- 拿数据库连接串。同页
Connection string里有两种:Direct connection(端口 5432)和Connection pooling(端口 6543,走 pgbouncer)。Serverless 环境务必用 pooler(详见踩坑 5)。
四、最小可跑示例
先在 SQL Editor 建一张表:
create table posts (
id bigint generated always as identity primary key,
title text,
created_at timestamptz default now()
);
-- 别忘了开启行级安全(见踩坑 6)
alter table posts enable row level security;
前端用官方 JS 客户端读写(只放 anon key):
import { createClient } from '@supabase/supabase-js'
const supabase = createClient(
'https://YOUR-PROJECT.supabase.co',
'YOUR-ANON-KEY' // 浏览器端只用 anon key
)
const { data, error } = await supabase
.from('posts').select('*')
五、7 个真实踩坑提醒
⚠️ 踩坑 2 — 500MB 数据库上限。数据 + 索引都算,日志表、附件元数据也会占空间。小产品随手用没事,但别拿它当网盘元数据仓。超了只能升级付费计划。
⚠️ 踩坑 3 — Storage 1GB + 带宽 2GB/月。放用户上传图片、或做图床,很容易超标。图片类业务建议:小图走 Supabase,大文件 / 高频下载转 Cloudflare R2(免出口流量费,本站有专篇教程)。
⚠️ 踩坑 4 — 仅 2 个免费项目。想多开几个试验田?不行。而且不活跃项目会被自动暂停释放资源。规划好:一个正式、一个折腾足矣。
⚠️ 踩坑 5 — 连接串用错会「连接数爆炸」。在 Vercel / Cloudflare Pages 这类 Serverless 环境,每次调用都可能新建连接;若用 Direct(5432),免费层并发连接很快耗尽、请求报错。正确做法:用 Connection pooling(6543) 那条 URL,并在连接参数加
?pgbouncer=true。⚠️ 踩坑 6 — anon key 是公开的,必须开 RLS。前端代码里能看到 anon key,若不给表开「行级安全(Row Level Security)」,任何人都能读改写您的全部数据,等于裸奔。建表后务必
enable row level security 并写好策略。⚠️ 踩坑 7 — 删除项目有 7 天宽限期。手滑删了项目别慌,删除后进入暂停态、7 天内可在控制台恢复;超过才真正销毁。同样,改套餐、清数据前先备份。
💡 组合拳:Supabase(数据 + 登录)+ Cloudflare Pages(前端托管,本站即此)+ R2(大文件存储)= 一个几乎零成本的全栈小产品底座,正好对应本站收录的免费服务矩阵。
六、什么时候该升级付费
出现下面任一信号,说明免费层到顶了:数据库快满、需要更多项目、受不了休眠冷启动、要自定义邮件域名 / SAML 登录 / 审计日志、或团队要协作。届时 Supabase 的 Pro 计划按需升级即可,迁移成本很低(数据都在您自己的 Postgres 里)。