PocketBase overview
Choose how to run PocketBase, model data, connect clients, and extend your backend.
PocketBase gives you an embedded SQLite backend, REST-ish Web APIs, realtime subscriptions, built-in authentication, file storage, and an admin dashboard in a single Go application. Use this overview to choose a starting point for an application or an extension.
PocketBase is still under active development. Before you use it for a production-critical application, review project changes and plan for manual migration work when needed.
Choose your path
What PocketBase provides
- Data: Define collections and store records in the embedded database. Use the collections and data modeling guide to choose fields and relationships.
- Access: Apply collection API rules to control who can list, view, create, update, or delete records. Start with API rules and filters.
- Clients: Call the Web APIs directly or use the official JavaScript SDK and Dart SDK.
- Operations: Run the standalone executable for a portable backend, then use the deployment guide when you prepare a service.
How the pieces fit
The client or SDK sends requests to the Web API. Collections define the data boundary, API rules decide whether a request is allowed or filtered, and records and files are persisted by the application. The admin UI is an administrative client, so keep superuser access separate from credentials used by regular application users. Go and JavaScript extensions add specialized server-side behavior when the standard API workflow is not enough.
Choose the standalone executable for the quickest path to a portable backend. Choose the Go framework when your application needs custom Go code in the same executable. Choose JavaScript extensions for server-side hooks and commands without building a separate Go application.