PocketBase

PocketBase

Open Source

Open source backend in 1 file.

Databases
Backend as a Service

Published 16 October 2026

Scores

Popularity3/5

One of the most-starred backend projects on GitHub and a common pick among indie and side-project developers, but far less known in larger companies than Firebase or Supabase.

Learning Curve2/5

Getting started is a download and one command, and the admin dashboard makes collections and API rules approachable. Running it in production and writing Go or JavaScript hooks asks for more server knowledge.

Flexibility4/5

Usable as a ready-made backend or as a Go framework with custom routes, hooks, and jobs, plus JavaScript hooks without a build step. The SQLite core and single-node design limit how far the data layer can be reshaped.

Performance4/5

A compiled Go server on SQLite in WAL mode handles typical app traffic with low latency and modest memory. Write concurrency and capacity are bounded by one machine, since it does not scale horizontally.

Portability4/5

MIT-licensed, self-hosted, and stored in a plain SQLite file you can copy anywhere. Client code is written against PocketBase's own API and SDK, so moving to another backend means rewriting the data access layer.

About PocketBase

PocketBase is an open-source backend in a single executable. Download one file for Linux, macOS, or Windows, run pocketbase serve, and you get an embedded SQLite database, a REST-style API for every collection, user authentication, file storage, realtime subscriptions, and an admin dashboard for managing data and settings. All state lives in a pb_data folder next to the binary, so a whole backend can be copied, backed up, or moved as files.

Data is organised into collections defined in the dashboard or in migration files. Each collection gets list, view, create, update, and delete endpoints, and access is controlled by API rules written in a filter syntax that can check the signed-in user, request data, and related records. Auth collections handle email and password sign-in, one-time email codes, dozens of OAuth2 providers, and multi-factor authentication, issuing JWT tokens to the client. Files can be stored on local disk or in S3-compatible object storage, with thumbnails generated on request.

PocketBase works as a standalone app or as a Go framework. Custom routes, event hooks, scheduled jobs, and email sending can be added either by importing it as a Go module and compiling your own binary, or by dropping JavaScript files into a pb_hooks folder that the embedded runtime loads without a build step. Official SDKs exist for JavaScript and Dart, and the realtime API streams record changes to clients over server-sent events.

The project is MIT-licensed and led by a single core maintainer. It is still pre-1.0: the documentation warns that backward compatibility is not guaranteed and that upgrades sometimes need manual migration steps. There is no official hosted service, so PocketBase runs on a VPS or any host with a persistent disk. Because it is built on SQLite, it scales vertically on one server rather than across a cluster, which comfortably covers most small and medium apps.

Key Features

  • Single executable with an embedded SQLite database and no external services
  • Auto-generated REST-style API for every collection, with filter-based API rules
  • Auth collections with password, email OTP, OAuth2, and multi-factor sign-in
  • Realtime record subscriptions over server-sent events
  • File storage on local disk or S3-compatible buckets, with on-demand thumbnails
  • Admin dashboard for collections, records, logs, backups, and settings
  • Extendable as a Go framework or with JavaScript hooks in pb_hooks
  • Official JavaScript and Dart SDKs

Pros

  • One binary to download and run, with no database server, Redis, or containers to manage
  • Free and MIT-licensed, so cost is only the server it runs on
  • Whole backend lives in one data folder that is simple to back up and move
  • Custom logic can be added in Go or JavaScript without leaving the same process
  • Fast for typical app workloads thanks to SQLite in WAL mode and a compiled Go server

Cons

  • Still pre-1.0, and upgrades can require manual migration steps from the changelog
  • Runs on a single server with SQLite, so there is no horizontal scaling or built-in replication
  • No official managed cloud, so you provision, secure, and back up the server yourself
  • Maintained mainly by one developer, which some teams see as a long-term risk
  • Official SDKs cover only JavaScript and Dart; other languages call the HTTP API directly

PocketBase Pricing

Open Source

Tech Stacks with PocketBase

PocketBase + SvelteKit

Project

Beginner web app with SvelteKit as a single-page frontend and PocketBase as the backend: database, auth, file storage, and realtime in one self-hosted binary.

Deploy on:
Object Storage add-on:
CI/CD add-on:
Containerization add-on:
Email add-on:
Payments add-on:
Styling add-on:
Analytics add-on:

Tools Related to PocketBase

Integrates with PocketBase(1)

PocketBase maintains an official Dart SDK, the `pocketbase` package, which Flutter apps use for records, auth, file uploads, and realtime subscriptions against a PocketBase server.

Alternatives to PocketBase(5)

Firebase is Google's fully managed NoSQL backend with mature mobile SDKs and no servers to run; PocketBase is a free, self-hosted backend in one file with a relational SQLite core, trading managed scaling for full control and no usage bills.

Supabase runs a full PostgreSQL platform with a managed cloud and horizontal scaling headroom; PocketBase packs the database, auth, and API into one self-hosted binary on SQLite, which is simpler and cheaper to run but stays on a single server.

Both are open-source, self-hostable backends with auth, storage, and realtime. PocketBase is one Go binary on SQLite with no managed cloud; Appwrite is a multi-service platform with functions, messaging, and hosting, offered as Appwrite Cloud or a Docker Compose install.

Convex is a managed, TypeScript-native backend whose reactive queries update the UI automatically; PocketBase is a self-hosted binary with REST endpoints and realtime subscriptions, extended in Go or JavaScript hooks rather than TypeScript functions.

Both are self-hostable backends with an admin dashboard, auth, and generated APIs. PocketBase is one binary with an embedded SQLite database; Directus is a Node.js app that sits on PostgreSQL, MySQL, or another SQL database you run, with GraphQL and finer-grained permissions.

Tags

JavaScriptGoDartOpen SourceSelf-hostableReal-timeWeb DevelopmentMobile DevelopmentAPI DevelopmentAuthentication

Details

Maintained
Yes
DB model
Relational
Query language
Custom
Hosting
Self-hosted
ACID compliant
Yes
Replication
No
GitHub stars
61.4k
Stars updated
2026-10-15