Supabaseとは何か
Supabaseは「オープンソースのFirebase代替」を掲げるBaaSプラットフォームだ。
| 項目 | 内容 |
|---|---|
| 設立 | 2020年(YC W20出身) |
| 本社 | シンガポール |
| GitHub Stars | 78K+(2026年3月) |
| DB | PostgreSQL(フルマネージド) |
| ライセンス | Apache 2.0 |
| 累計調達額 | $160M+ |
FirebaseがGoogleのプロプライエタリ技術に依存するのに対し、Supabaseは標準的なPostgreSQLの上に構築されている。ベンダーロックインのリスクが低いことが最大の差別化要素だ。
Supabaseの主要機能
| 機能 | 説明 | Firebase相当 |
|---|---|---|
| Database | フルマネージドPostgreSQL | Firestore |
| Auth | メール/OAuth/MFA認証 | Firebase Auth |
| Storage | ファイルストレージ(S3互換) | Cloud Storage |
| Edge Functions | Deno ベースのサーバーレス関数 | Cloud Functions |
| Realtime | WebSocketでのリアルタイム同期 | Realtime Database |
| Vector | pgvectorによるベクトル検索 | (対応なし) |
| Cron | 定期実行ジョブ | (対応なし) |
特にVector(ベクトル検索)機能はAI時代に強力だ。RAGアプリケーションのバックエンドをSupabase単体で構築できる。
Firebase vs Supabase — 徹底比較
| 比較軸 | Supabase | Firebase |
|---|---|---|
| データベース | PostgreSQL(リレーショナル) | Firestore(NoSQL) |
| クエリ言語 | SQL | 独自API |
| オープンソース | はい | いいえ |
| セルフホスト | 可能 | 不可 |
| Row Level Security | PostgreSQL RLS | Security Rules |
| 価格体系 | 使用量ベース | 使用量ベース |
| 無料枠 | 2プロジェクト、500MB DB | Spark(制限あり) |
| ベンダーロックイン | 低い(標準SQL) | 高い(Google依存) |
| リアルタイム | WebSocket | WebSocket |
| AI/ベクトル検索 | pgvector組み込み | 別途構築が必要 |
Supabaseの始め方 — 10分でCRUDアプリ
ステップ1: プロジェクト作成
supabase.com でアカウント作成後、「New Project」をクリック。リージョンは東京(ap-northeast-1)を選択する。
ステップ2: テーブル作成
Table Editor で GUI からテーブルを作成できる。SQLエディタでの直接記述も可能。
CREATE TABLE articles (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
title TEXT NOT NULL,
body TEXT,
status TEXT DEFAULT 'draft',
created_at TIMESTAMPTZ DEFAULT now()
);
-- RLS有効化
ALTER TABLE articles ENABLE ROW LEVEL SECURITY;
ステップ3: クライアント接続
import { createClient } from '@supabase/supabase-js'
const supabase = createClient(
process.env.NEXT_PUBLIC_SUPABASE_URL!,
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!
)
// データ取得
const { data } = await supabase
.from('articles')
.select('*')
.eq('status', 'published')
.order('created_at', { ascending: false })
料金プラン
| プラン | 月額 | DB容量 | 特徴 |
|---|---|---|---|
| Free | $0 | 500MB | 2プロジェクト、50K MAU |
| Pro | $25 | 8GB | 100K MAU、自動バックアップ |
| Team | $599 | 8GB+ | SOC2、優先サポート |
| Enterprise | カスタム | 無制限 | SLA、専任エンジニア |
個人開発やMVP検証ならFreeプランで十分だ。Proプランも月$25と、Firebase の従量課金と比べて予測しやすい料金体系になっている。
Supabase × Next.js 実践パターン
| パターン | 実装 | ユースケース |
|---|---|---|
| SSR認証 | @supabase/ssr + middleware | ダッシュボード、管理画面 |
| RLS + anon key | クライアント直接アクセス | 公開データの取得 |
| Server Actions + service role | サーバーサイド処理 | データ更新、管理操作 |
| Edge Functions | Deno Deploy互換 | Webhook、外部API連携 |
| Realtime | チャンネル購読 | チャット、通知、ダッシュボード |
Next.js App Router との統合は特に強力で、Server Components からの直接クエリ、Server Actions でのミューテーション、middleware での認証チェックがシームレスに行える。
Row Level Security(RLS) — Supabaseのセキュリティの要
RLSはPostgreSQL のネイティブ機能で、テーブルの行レベルでアクセス制御を行う。
-- 自分の記事だけ読める
CREATE POLICY "Users can read own articles"
ON articles FOR SELECT
USING (auth.uid() = author_id);
-- 公開記事は誰でも読める
CREATE POLICY "Public articles are readable"
ON articles FOR SELECT
USING (status = 'published');
RLSを正しく設計すれば、クライアントから直接DBにアクセスしても安全だ。これにより、従来必要だったAPIレイヤーを大幅に削減できる。
あなたの次のプロジェクトに、SQLの力を
Supabaseが証明したのは、「モダンなWebアプリケーションにNoSQLは必須ではない」ということだ。50年の歴史を持つPostgreSQLの堅牢さに、リアルタイム、認証、ストレージ、ベクトル検索を統合した Supabase は、2026年のフルスタック開発における最有力候補のひとつだ。
次にアプリを作るとき、バックエンドの選択肢を「Firebase一択」で終わらせていいだろうか?
