前言
我主要是一位獨立 iOS 開發者,但一直有在考慮做一些跨平台 App。我試過 Firebase,但抱持懷疑態度,因為我讀過一則糟糕的案例,使用者用 Firebase 收到誇張的帳單。而且直到今天,Google 還是不讓你設定預算上限。所以,我開始尋找 Firebase 的替代方案,或者該說是一個簡單好用的跨平台資料庫服務?
我最後選定了 Appwrite 和 Supabase。以我初學者等級的後端經驗試用過兩者之後,以下是我的觀點。
TL;DR:
如果你是自己架設(self-hosting),而且不需要儲存關聯式資料,就用 Appwrite。如果你不介意付費,想要省事、長期穩健的開發,並使用雲端版本的 Supabase。我會說明原因。
Supabase 與 Appwrite 的主要差異
資料庫技術
Appwrite 使用 NoSQL,Supabase 使用 PostgresSQL。
如果你熟悉 Firebase,用 Appwrite 會感到很親切。但如果你想要關聯式資料庫,就選 Supabase。
雲端定價
截至 2025 年 3 月,兩項服務都提供有使用限制的免費方案。例如 1-2 個專案、有限的頻寬、並行使用者數量等。你可以從上面的連結查看最新定價。目前,超出免費方案後,Supabase 從每月 $25 起,Appwrite 從每月 $15 起。
使用者介面
Appwrite
- 面板項目較少,總覽更簡潔。
Supabase
- 選項較多,但看起來有點複雜。
自行架設
兩者都很容易部署。不過,Supabase 的自行架設版本相當受限,是他們雲端版本的閹割版。不像 Appwrite,自行架設版本就能取得所有功能。以下是我在自行架設 Supabase 時遇到的一些問題:
-
Supabase 自行架設版本每個執行個體只允許一個專案;這與你透過他們平台使用的雲端版本不同,雲端版本可以建立許多專案。
-
我試著尋找並修改驗證用的 URL 重新導向,但選單裡沒有像雲端版本那樣的按鈕。於是我前往雲端伺服器,進到該頁面,複製連結,並把它改成指向我的執行個體。然後我就能看到那些選項,但無法修改。我猜這是閹割版的限制之一。
-
文件大多是針對雲端版本,無法順利套用到自行架設版本。這是因為某些設定和選項並不存在。
另一方面,Appwrite 我很快就讓它跑起來了。而且我發現文件很容易照著做。
離線同步
如果你的 App 不只限於網站,很可能在某個時候需要處理離線同步。在這方面,Supabase 比較容易處理,因為有函式庫和第三方服務可以搭配使用。Powersync 和 Brick 之類的選項很常見。至於 Appwrite,你得自己撰寫同步邏輯,因為我找不到任何易於使用的函式庫來處理離線同步。
最後補充
我目前使用自行架設的 Appwrite,因為:
- 一個執行個體,多個專案 - 我可以玩很多專案,不用擔心限制和帳單
- 功能完整 - 與雲端版本沒有差別(我想是這樣?至少我還沒遇到我需要但卻沒有的功能)
- 文件容易照著做
- Supabase 似乎透過閹割許多功能來逼你使用他們的雲端方案,我不喜歡這樣
- 嘗試 NoSQL - 我有專案使用 Supabase 雲端版本,而且它很好。但最終我還是需要自行架設的替代方案,目前 Appwrite 似乎提供更好的選擇。
如果你不介意付費,Supabase 很棒。如果你想親自動手,或更熟悉 NoSQL,自行架設 Appwrite 也夠有趣了。
參考資料:
我研究時看到的這篇 reddit 貼文。