- PocketBaseは、データベース、認証、ファイル保存、管理ダッシュボードを含む単一ファイル型オープンソースバックエンド
- スキーマビルダー、データ検証、リアルタイム購読、REST APIを備えた、組み込み型の高性能データベース構造
- メール/パスワードおよび**OAuth2ログイン(Google、Facebook、GitHub、GitLab)**をサポートし、ユーザー管理を簡素化
- ローカルまたはS3ストレージにファイルを安全に保存し、データベースレコードにメディアを紐づけてサムネイルの自動生成が可能
- スタンドアロンアプリまたはGo・JavaScriptで拡張可能なフレームワークとして利用でき、軽量なカスタムバックエンド構築に有用
PocketBaseの概要
- PocketBaseは、単一実行ファイルとして動作するオープンソースバックエンドプラットフォーム
- データベース、認証、ファイル保存、管理ダッシュボードを統合して提供
- 別途サーバー構成なしで素早く実行可能な構成
データベース機能
- スキーマビルダー、データ検証、リアルタイム購読、REST APIをサポートする組み込みデータベースを搭載
- リアルタイムデータ変更の検知と購読機能を提供
- REST APIを通じて、簡単にデータの取得・作成・更新・削除が可能
ユーザー認証
- アプリのユーザー管理とメール/パスワードベースのログインをサポート
- OAuth2認証によりGoogle、Facebook、GitHub、GitLabアカウントでの登録およびログインが可能
ファイルストレージ
- ファイルをローカルまたはS3ストレージに安全に保存可能
- データベースレコードにメディアファイルを添付可能
- アップロード時にサムネイル自動生成機能を提供
拡張性と開発者サポート
- PocketBaseはスタンドアロンアプリケーションとして使用するか、GoおよびJavaScriptフック(hook)を通じて拡張可能なフレームワークとして活用可能
- 開発者は独自のロジックを追加して、カスタムバックエンドを実装可能
JavaScript SDKの例
- JavaScript SDKを通じてPocketBaseサーバーと相互作用可能
- サンプルコードでは、
exampleコレクションのレコード一覧取得、単一レコードの取得・削除・作成、リアルタイム購読および購読解除の機能を示す
pb.collection('example').getList()、getOne()、create()、delete()、subscribe()などのメソッドを提供
1件のコメント
Hacker Newsの意見
「SQLite にはスケーラビリティがない」というのは、たいてい 早すぎる最適化という思い込み にすぎない
実際に WAL の競合限界にぶつかるケースはまれで、単一バイナリのシンプルさは分散システムの複雑さよりはるかに優れていると思う
最近は小さなプロジェクトでさえ DB クラスタや Redis キャッシュを当然のように付けるが、Pocketbase は CRUD アプリの 99% ではボトルネックは DB ではなくネットワーク遅延と開発者の運用時間であることを示している
Rust CLI ベンチマークで試したところ、同じマシン上では MySQL や Postgres より性能が良かった
この規模のプロジェクトには SQLite が最適だ
アプリケーション側ですべての計算を処理しなければならず面倒だ
Pocketbase を見るとすぐに upvote を押す
複数の本番アプリで使っているが非常に安定している
ときどき互換性を壊す変更はあるが、全体として素晴らしく、スケーラビリティも高い
必要な機能がないときは少し厄介だが、熟練した開発者なら十分に対処できる
ただ、開発者が 1 人だけなので今後の保守が心配だ
それでも フロントとバックを分離 しなければならないときには本当に良い選択だ
個人プロジェクトや社内ツールで Pocketbase を愛用している
PocketPages と一緒に使えば、ファイルベースのルーティングやテンプレートを簡単に使える
自動 DB マイグレーション 機能のおかげで、スキーマ変更をバージョン管理に含められる
さらには Gemini プロトコルサーバーをつないで、Lagrange で個人用ナレッジグラフを探索している
Pocketbase は GUI で設定できる バックエンドサーバー だ
ほとんどコードなしで動くバックエンドを作れるので、プロトタイプ、MVP、シンプルなアプリに向いている
この概念を一般化したのは Firebase だ
自分が書くバックエンドは数百〜数千行のコードが必要だが、それをどう置き換えるのか知りたい
こうしたツールで作れるアプリの範囲が気になる
サイドプロジェクトで Pocketbase を使ってみたが本当に印象的だった
Django で長く仕事をしてきたが、中小規模のプロジェクトでは従来型のバックエンドを自分で作るより Pocketbase のほうがはるかに合っている
質問があれば喜んで答えられる
それと PostgreSQL もサポートしているのか、それとも SQLite 専用なのか知りたい
そこで Claude Skill を作ってみたのだが、似たような経験があるか気になる
Trailbase は同じ概念を Rust で実装したバージョンだ
そのため Trailbase に乗り換えた
つまりアプリ全体をホスティングすることもできる
ガイドリンク
Pocketbase をサイドプロジェクトの 認証レイヤー として使っている
kavla.dev で運用しており、フックシステムが素晴らしい
Go イベントフック文書 のおかげでインフラ自動化も簡単に実装できる
SQLite と DuckDB で MVP を素早く作ったが、後になって バックアップと本番運用の段階 で後悔した
最初から Supabase で始めていればもっと楽だった気がする
私は Pocketbase で OpenSOHO を作り、そのおかげで開発時間を大きく節約できた
バックエンドを再利用できるよう少し修正したが難しくはなかった
スクリーンショットを見るだけでも Pocketbase の痕跡がすぐにわかる
GitHub リンク
Pocketbase の SQLite バックアップが心配で、稼働中でも sqlite3_rsync でバックアップできるツール sqlrsync.com を自作した
MVP は動作中で、Cloudflare Durable Objects ベースなので高速かつ安定している
フィードバック歓迎