如果你現在有在做 vibe coding,或讓 Claude Code、Codex、Cursor 這類 AI agent 幫你做產品原型,我會建議你認識一個很香的開源後端工具:PocketBase。
它最吸引人的地方很簡單:PocketBase 是一個「單一執行檔」就能跑起來的開源後端。裡面已經幫你包好 realtime database、authentication、file storage、admin dashboard,還有好用的 REST-ish API 和 SDK。
對 vibe coding 來說,這件事很關鍵。因為 AI agent 很會做前端,很會寫 CRUD,很會幫你生表單與頁面,但如果每次都要先架資料庫、寫登入、處理檔案上傳、弄 API 權限,整個節奏就斷掉了。PocketBase 剛好補上這一塊。
以前做 MVP,後端常常是第一個卡點。PocketBase 的價值,就是讓你先把產品流程跑起來,再決定要不要長大成更複雜的架構。
PocketBase 是什麼?
PocketBase 官方把它定位成 open source backend in 1 file。它內建 SQLite 資料庫、Realtime subscriptions、Auth 管理、Dashboard UI 和簡單 API。你可以把它當成獨立後端服務,也可以用 Go 或 JavaScript hooks 擴充它。
最直覺的理解是:它像一個輕量版的 Firebase / Supabase,但部署和啟動更簡單。下載壓縮檔、解壓縮、執行:
./pocketbase serve
第一次啟動後,它會開一個後台讓你建立 superuser。預設會有:
- `http://127.0.0.1:8090/`:前台靜態檔案服務,如果有 `pb_public` 目錄。
- `http://127.0.0.1:8090/_/`:管理後台。
- `http://127.0.0.1:8090/api/`:API 入口。
也就是說,你不需要先安裝 MySQL、PostgreSQL、Redis、Auth server、Admin panel。對一個原型或內部工具來說,這個起手速度很舒服。
為什麼 PocketBase 很適合 vibe coding?
vibe coding 的核心不是「亂寫程式」,而是用 AI 快速把想法變成能跑的東西。但真正會拖慢速度的,往往不是 UI,而是後端基礎建設。
你只是想做一個簡單工具,結果先遇到這些事:
- 資料表怎麼設計?
- 登入註冊怎麼做?
- 權限規則怎麼寫?
- 圖片和檔案要放哪裡?
- API 怎麼開給前端?
- 後台要怎麼看資料?
PocketBase 剛好把這些常見功能先包好,讓你可以把注意力放回產品本身。這對 AI agent 很友善,因為它可以很快幫你接前端 SDK、做資料 CRUD、設計 collection、串登入流程。
如果你有看我前面寫的 GitHub 管理 vibe coding 程式碼,你會發現方向是一樣的:AI 可以加速,但你要有一套簡單、可控、可回復的工作流程。PocketBase 則是讓後端這一段變得更輕。
PocketBase 內建哪些功能?
1. Realtime database
PocketBase 使用 embedded SQLite,並提供 schema builder、資料驗證、Realtime subscriptions 和 API。你可以在後台建立 collection,設定欄位,前端就可以透過 SDK 或 API 讀寫資料。
2. Authentication
它內建 email/password 登入,也支援多種 OAuth2 provider,例如 Google、Facebook、GitHub、GitLab 等。對很多小型產品來說,登入註冊本來就不是核心差異化,但很花時間;PocketBase 可以先幫你省掉這段。
3. File storage
你可以把檔案存在本機,也可以接 S3 storage。上傳檔案可以附在資料 record 上,還能產生縮圖。這對會員頭像、商品圖片、文件上傳、小型 CMS 都很實用。
4. Admin dashboard
這是我覺得最適合 vibe coding 的地方。很多 AI 產生的小工具,後台管理都很弱。PocketBase 直接給你管理介面,至少可以看 collection、改資料、設定規則,不用每次都進資料庫查。
5. Go / JavaScript 擴充
PocketBase 可以當 standalone app,也可以透過 Go 或 JavaScript hooks 擴充。也就是說,你一開始可以很輕,等真的需要自訂商業邏輯,再慢慢加。
一個 AI agent 可以怎麼用 PocketBase?
如果我是用 Claude Code 或 Codex 做一個小型工具,我會這樣拆:
- 先定義產品:例如「客戶詢問管理小工具」。
- 讓 AI agent 設計 PocketBase collections:leads、notes、users。
- 在 PocketBase 後台建立欄位與權限。
- 讓 AI 寫前端表單與列表頁。
- 用 JavaScript SDK 串資料新增、查詢、更新。
- 用 Playwright 測試表單和後台流程。
- 用 GitHub 管理程式碼和版本。
這樣 AI agent 不用先幫你架一整套後端服務,也不用一開始就引入太多雲端資源。你可以先把產品流程跑起來,確認真的有人要用,再決定下一步要不要重構或換架構。
PocketBase 適合做哪些東西?
我會把它放在這些場景:
- MVP 原型。
- 內部管理工具。
- 小型 SaaS 後端。
- 會員登入和資料管理。
- 表單收件與客服紀錄。
- 簡單 CMS 或內容管理系統。
- AI 工具的資料儲存與任務紀錄。
- 手機 App 或前端專案的 API backend。
它特別適合「我想先做出來、先驗證需求」的階段。你不需要為了還沒確定的產品,先背上一堆 DevOps 和雲端服務複雜度。
PocketBase 不適合什麼?
這段一定要講,不然很容易變成工具吹捧文。
PocketBase 官方文件有明講:它還在 active development,v1.0.0 前不保證完整 backward compatibility,也不建議用在 production critical applications,除非你可以接受閱讀 changelog 並手動處理 migration。
另外,PocketBase 是 self-hosted only,官方沒有提供託管服務。它也不是水平擴展架構,FAQ 裡講得很清楚,主要是單機垂直擴展。SQLite 對很多小中型應用很夠用,但如果你一開始就要多區域、高可用、超大流量、複雜資料倉儲,PocketBase 就不一定是最適合的選擇。
我會這樣看:
| 適合 | 不太適合 |
|---|---|
| MVP、內部工具、小型 SaaS | 銀行等級或高風險正式系統 |
| 單機部署、快速驗證需求 | 一開始就需要多機水平擴展 |
| AI agent 快速做 CRUD 後端 | 高度複雜的微服務架構 |
| 想掌握自有資料與開源後端 | 完全不想自己維運的人 |
PocketBase、Supabase、Firebase 怎麼看?
我不會說 PocketBase 一定比 Supabase 或 Firebase 好。它們定位不同。
- Firebase:雲端服務完整,適合想吃 Google 生態的人,但綁定度比較高。
- Supabase:Postgres 生態、雲端託管、Auth、Realtime 都很完整,適合比較正式的產品。
- PocketBase:輕量、自架、一個檔案、SQLite,很適合原型、內部工具、AI 快速開發。
如果你是 vibe coding,要的是「今天晚上先做出可以跑的版本」,PocketBase 會很舒服。如果你已經確定要做一個大型正式產品,那就要更仔細評估資料規模、備份、部署、監控、升級策略。
我會怎麼把 PocketBase 放進 vibe coding 工作流?
我會這樣設計:
- 用 GitHub 開 repo,先把前端和 PocketBase 設定放進版本控管。
- `pb_data` 放進 `.gitignore`,不要把實際資料亂 commit。
- `pb_migrations` 可以 commit,保留 collection schema 變更紀錄。
- 用 AI agent 建立基本 collection 與前端頁面。
- 用 Playwright 測試登入、表單、列表、資料新增流程。
- 每次 AI 改 schema 或 API,都開 branch 和 PR。
- 確定需求後,再評估是否繼續用 PocketBase 或升級到其他後端。
這就不是單純「AI 幫我寫一個後端」而已,而是把 PocketBase 放進一套可測試、可追蹤、可回滾的開發流程裡。
如果你前面有看過 Loop Engineering,這其實就是同一個概念:AI 可以幫你跑很快,但流程要有邊界、驗證和紀錄。
我的結論:PocketBase 是 AI 原型開發的好工具,但不要迷信
我喜歡 PocketBase 的原因,是它很符合 vibe coding 的節奏。你有一個想法,想快速做出前端、登入、資料表、檔案上傳、後台管理,它可以讓你少踩很多後端起手式的泥巴。
但我不會把它吹成萬能。它很適合原型、內部工具、小型產品和自架應用。真的要做正式大型系統,就要認真看部署、備份、升級、監控、資料成長和官方版本穩定性。
對我來說,PocketBase 最適合的使用方式是:讓你在產品還沒確定前,不要先被後端架構拖住;等需求被驗證,再決定要不要繼續走下去。
在 vibe coding 時代,PocketBase 不是取代所有後端,而是讓 AI agent 和開發者更快把想法變成能跑的產品。
常見問題 FAQ
PocketBase 是什麼?
PocketBase 是一套開源後端工具,特色是單一執行檔即可啟動,內建 SQLite 資料庫、Realtime subscriptions、Auth、File storage、Admin dashboard 和 REST-ish API。它可以當獨立後端,也能用 Go 或 JavaScript 擴充。
PocketBase 為什麼適合 vibe coding?
因為 vibe coding 很需要快速把產品原型做出來。PocketBase 先幫你處理資料庫、登入、檔案、API 和後台管理,讓 AI agent 可以更快完成前端與 CRUD 流程,不用一開始就架完整後端工程。
PocketBase 適合正式產品嗎?
要看場景。PocketBase 很適合 MVP、內部工具、小型 SaaS 和自架應用,但官方也提醒它還在 active development,v1.0 前不保證完整 backward compatibility,不建議用在 production critical applications,除非你能接受升級與 migration 成本。
PocketBase 可以取代 Supabase 或 Firebase 嗎?
不一定。PocketBase 更像輕量自架後端,適合快速原型與小型應用。Supabase 和 Firebase 的雲端服務、生態與正式產品支援比較完整。選擇時要看資料規模、維運能力、預算、擴展需求與是否想自架。
PocketBase 的資料要怎麼做版本控管?
官方文件提到 `pb_data` 存放應用資料與上傳檔案,通常應該放進 `.gitignore`;`pb_migrations` 則包含 collection 變更的 JS migration,可以 commit 到 GitHub。這樣可以保留 schema 變更紀錄,同時避免把實際資料 commit 進 repo。







