はじめに
私は主にインディー系の iOS 開発者ですが、クロスプラットフォームアプリの開発も視野に入れています。Firebase を試してみましたが、Firebase を使ったユーザーが法外な請求を受けたという悪い話を読んだので懐疑的でした。それに、今日に至るまで Google は予算上限を設定させてくれません。そこで私は Firebase の代替、いわば手軽なクロスプラットフォームデータベースサービスを探し始めました。
行き着いたのが Appwrite と Supabase です。バックエンド初心者レベルの経験で両方を試した後、私の視点を共有します。
TL;DR:
セルフホスティングで、リレーショナルデータを保存する必要がないなら Appwrite を使いましょう。お金を払うことに抵抗がなく、クラウド版 Supabase を使って手間なく長期的に堅牢な開発をしたいなら Supabase です。その理由もお伝えします。
Supabase VS Appwrite の大きな違い
データベース技術
Appwrite は NoSQL を、Supabase は PostgresSQL を使用しています。
Firebase に慣れているなら、Appwrite は馴染みやすく感じるでしょう。しかしリレーショナル DB が欲しいなら Supabase です。
クラウドの料金
2025 年 3 月時点で、両サービスとも制限付きの無料枠を提供しています。例えば、1〜2 プロジェクト、帯域幅の制限、同時接続ユーザー数などです。最新の料金は上記のリンクから確認できます。現在、無料枠を超えると Supabase は月額 $25 から、Appwrite は月額 $15 からとなります。
ユーザーインターフェース
Appwrite
- パネルの項目が少なく、すっきりとした概要。
Supabase
- オプションは多いが、少し複雑に見える。
セルフホスティング
どちらも簡単にデプロイできます。しかし、Supabase のセルフホスト版はかなり制限されており、クラウド版を簡略化したものです。一方 Appwrite は、セルフホスト版でもすべての機能が利用できます。Supabase のセルフホスティングで私が遭遇した問題は以下のとおりです:
-
Supabase のセルフホスト版は 1 インスタンスにつき 1 プロジェクトしか許可されません。プラットフォーム経由で使うクラウド版では多数のプロジェクトを作成できるのとは異なります。
-
認証用の URL リダイレクトを見つけて変更しようとしましたが、クラウド版のようにメニューにボタンがありませんでした。そこでクラウドサーバーにアクセスして該当ページに移動し、リンクをコピーして自分のインスタンスを指すように変更しました。するとオプションは表示されましたが、変更はできませんでした。これは簡略化版の制限の一つだと思います。
-
ドキュメントは主にクラウド版向けで、セルフホスト版にはそのまま適用できません。特定の設定やオプションが欠けているためです。
一方 Appwrite は、すぐに稼働させることができました。ドキュメントも分かりやすかったです。
オフライン同期
アプリがウェブサイトだけに限定されないなら、いずれオフライン同期を管理する必要が出てくるでしょう。この点では Supabase のほうが管理しやすく、利用できるライブラリやサードパーティサービスがあります。Powersync や Brick などが一般的です。Appwrite の場合は、オフライン同期を管理する使いやすいライブラリが見つからなかったため、自分で同期ロジックを書く必要があります。
最後に
私は現在セルフホスト版の Appwrite を使っています。理由は:
- 1 インスタンスで複数プロジェクト - 制限や請求を気にせず、たくさんのプロジェクトで遊べる
- 全機能搭載 - クラウド版との違いがない(たぶん? 少なくとも必要な機能が欠けていたことはありません)
- 分かりやすいドキュメント
- Supabase は多くの機能を簡略化することでクラウドプランへ誘導しているように見え、それが気に入らない
- NoSQL を試せる - Supabase クラウド版を使ったプロジェクトもあり、それは良いです。しかし最終的にはセルフホストの代替が必要になるでしょうし、今のところ Appwrite のほうが良い選択肢を提供しているように思えます。
お金を払うことに抵抗がなければ、Supabase は素晴らしいです。自分で手を動かしたい、あるいは NoSQL にもっと慣れたいなら、Appwrite のセルフホスティングは十分に楽しいです。
参考:
調査中に見たこの Reddit の投稿。