Supabaseはなぜ人気があるのか
ここまでExpressでルートを作り、MySQLにデータを保存し、Cookieで認証を処理する方法を学びました。自分で作ってみるとバックエンドがどう動くか理解できます。
しかし現実でサービスを作る時、これらすべてをゼロから自作するチームは思ったより少ないです。「データベースは何を使うか」「認証はどう実装するか」「ファイルアップロードはどこに保存するか」— 一つ一つ決めて構築していると、肝心のコア機能を作る時間が足りなくなります。
この問題を解決するために登場したのがBaaS(Backend as a Service)で、その代表格がSupabaseです。
バックエンドのボトルネックという現実
実験室で例えると — 新しい分析法を開発しようとしているのに、試薬を自分で合成し、装置を自分で組み立て、ソフトウェアを自分で書かなければならないとしたら?分析法1つ作るのに1年かかります。大半の研究者は検証済みの試薬を購入し、市販の装置を使い、既存の分析ソフトウェアの上で作業します。
Web開発も同じです。サービスを作る時に必要なバックエンドの基本パーツ:
| パーツ | 自作すると | 現実 |
|---|---|---|
| 認証 | ログイン、セッション、ソーシャルログイン、パスワードリセット... | 一度ミスすればセキュリティ事故 |
| データベース | 設計、マイグレーション、バックアップ、最適化... | 後から変更するのが極めて困難 |
| ファイル保存 | アップロード、CDN、権限管理... | 予想以上に複雑 |
| API | ルーティング、エラー処理、ドキュメント化... | 繰り返し作業が多い |
これらのうち1つでも欠ければサービスは動きません。しかしすべて自作するのは — まるで実験のたびにPCR装置を自分で組み立てるようなものです。可能ではありますが、そうすべき理由が必要です。
BaaS:バックエンドをサービスとして使う
BaaSはこれらの基本パーツをすでに作られたサービスとして提供します。データベース、認証、ファイル保存、APIがセットで用意されており、開発者はその上に自分のサービスのコアロジックだけを載せればよいのです。
DevBenchの学習過程と結びつけると:
自作方式(私たちが学んだこと):
Node.js → Express → MySQL → Cookie/セッション → 自分で組み立て
BaaS方式:
Supabaseアカウント作成 → テーブル作成 → API自動生成 → 認証設定
→ コア機能開発に集中「じゃあなぜExpressとMySQLを学んだの?」— これが核心です。BaaSをちゃんと使うには、その中で何が起きているか知っている必要があります。 SQLを知らなければSupabaseのテーブルを設計できないし、HTTPを知らなければAPI呼び出しをデバッグできません。基礎を学んだ人だけがBaaSを道具として使え、学んでいない人はBaaSに振り回されます。
Supabaseが選ばれる理由
BaaSサービスはいくつかありますが、最近Supabaseがよく選ばれる理由は3つあります。
1. PostgreSQLベース
SupabaseのデータベースはPostgreSQLです。私たちが学んだMySQLとSQL文法が90%以上同じです。SELECT、INSERT、JOIN — すべてそのまま使えます。
PostgreSQLは世界で最も広く使われているリレーショナルデータベースの1つです。つまり、Supabaseを使った後で別のシステムに移行しても、SQL知識とデータ構造がそのまま生き残ります。実験データを標準フォーマット(CSV、FASTA)で保存すれば、どの分析ツールでも使えるのと同じです。
2. オープンソース
Supabaseはオープンソースです。コードが公開されており、望めば自分のサーバーにインストールして使えます。これは「ベンダーロックイン」— 特定のサービスに縛られて抜け出せない状態 — を防ぎます。
3. Web開発エコシステムとの相性
React、Next.jsのようなフロントエンドフレームワークと自然に連携します。BioPlayground自体もNext.js + Supabaseの組み合わせで作られています。
Firebase vs Supabase vs 自作
| Firebase | Supabase | 自作(Express+MySQL) | |
|---|---|---|---|
| DB種類 | NoSQL(ドキュメント型) | PostgreSQL(リレーショナル) | 自由選択 |
| SQL使用 | 不可 | 可能 | 可能 |
| 認証 | 内蔵 | 内蔵 | 自作 |
| 開始速度 | 非常に速い | 速い | 遅い |
| コントロール | 低い(Google依存) | 中(オープンソース) | 高い |
| 学習難易度 | 低い | 中 | 高い |
| 適した場面 | モバイルアプリMVP | WebサービスMVP | カスタム要件 |
FirebaseはGoogleのBaaSで、特にモバイルアプリに強いです。しかしNoSQLベースなので、リレーショナルデータ(サンプル-研究者の関係のようなもの)を扱うのが困難です。
SupabaseはSQLベースなので、私たちが学んだリレーショナルデータモデルをそのまま使えます。「Firebaseの便利さ + PostgreSQLの安定性」がSupabaseのポジションです。
研究者にとってBaaSが意味すること
研究室で簡単なサンプル管理Webアプリ、実験記録ダッシュボード、チーム内部ツールを作りたい時 — バックエンドをゼロから構築する必要はありません。
SupabaseのようなBaaSを使えば:
- テーブル設計 → Supabaseダッシュボードでクリックで
- 認証 → Email/Googleログインが設定だけで
- API → テーブルを作れば自動でREST API生成
- フロントエンド → Reactで画面だけ作ればOK
これが可能であるためには — SQLとは何か、APIとは何か、認証がどう動くかをすでに知っている必要があります。 DevBenchで学んだことがまさにこの基礎です。
結論:基礎の上に立ってこそ道具が見える
BaaSはバックエンドを「なくす」のではなく、繰り返し的な部分をサービスに置き換えることです。Expressでサーバーを自作した人は、Supabaseが何を代行してくれるか正確に理解します。作ったことがない人は「何が楽になったのか」わかりません。
実験装置を使うには原理を知る必要があるように、BaaSを使うにはバックエンドの原理を知る必要があります。そうすることで問題が起きた時 —「これは自分のコードの問題か、Supabaseの設定の問題か?」を区別できます。
今まで学んだことは無駄ではありませんでした。むしろここからが本当に力を発揮するのです。