Stars
Forks
Watchers
Developer links
PocketBase
An entire backend in a single Go executable: PocketBase embeds SQLite with realtime subscriptions, authentication and user management, file storage, and an admin dashboard, all behind a REST-ish API. SQLite runs in WAL mode, which outperforms client-server databases for the read-heavy workloads typical of small and mid-sized apps. Authentication supports email/password, one-time passwords, and 15+ OAuth2 providers including Google, Apple, and GitHub, with stateless tokens. Clients subscribe to record changes over server-sent events, and official JavaScript and Dart SDKs cover web, mobile, and Flutter frontends. Collections, rules, and API access permissions are managed visually in the admin UI. When you need custom logic, extend it with JavaScript hooks running in the embedded JS VM of the prebuilt binary, or import PocketBase as a Go library and compile custom business logic into your own single-file backend. File storage attaches uploads to records with thumbnail generation for images and optional S3-compatible external storage. All state lives in one pb_data directory, so backup is a directory copy and upgrade is replacing a binary - one of the lowest-maintenance backends you can run. The contrast with Firebase is the point: where usage-based pricing scales with reads, writes, and bandwidth, PocketBase runs the entire backend at flat hosting cost, and the data is a plain SQLite file you can copy anywhere. MIT-licensed.
Benefits
- Zero Vendor Lock-In, Zero Usage Bills
- Firebase pricing scales with reads, writes, and bandwidth. PocketBase runs your entire backend at flat hosting cost, and the data is a plain SQLite file you can copy anywhere.
- Operationally Trivial
- One executable, one data directory, no external database server. Backup is copying pb_data; upgrade is replacing a binary. It is one of the lowest-maintenance backends you can run.
- Fast for Real Workloads
- SQLite in WAL mode handles the read-heavy traffic of typical apps faster than networked databases, because there is no network hop between app and storage.
- Grows Into Custom Code
- Start with the standalone binary and admin UI; when requirements outgrow configuration, add JavaScript hooks or embed PocketBase as a Go library while still shipping a single executable.
Features
- Embedded Realtime Database
- SQLite with WAL mode, schema managed as collections in the admin UI, and realtime record subscriptions delivered to clients over server-sent events.
- Authentication Built In
- Email/password, OTP, and 15+ OAuth2 providers including Google, Apple, Facebook, and GitHub, with stateless JWT-style tokens not stored in the database.
- File Storage
- Upload files attached to records, with thumbnail generation for images and optional S3-compatible external storage.
- Admin Dashboard
- A web UI for defining collections, setting per-collection API rules, browsing records, managing users, and viewing request logs.
- REST API and Official SDKs
- Filterable, sortable, paginated record APIs with JavaScript and Dart SDKs for web, Node.js, and Flutter clients.
- Extensible in JS or Go
- The prebuilt binary embeds a JavaScript VM for event hooks; alternatively import PocketBase as a Go package and compile custom business logic into one portable binary.