Features
- Single binary β database, auth, storage, admin UI
- Real-time subscriptions via SSE
- Built-in auth with OAuth2 providers
- Extendable with Go or JavaScript hooks
Pros
- Incredibly simple β one file, zero dependencies
- Admin dashboard included for data management
- Perfect for small projects and prototypes
Cons
- Single-server only β no horizontal scaling
- SQLite-based β not suited for massive write loads
- Go customization required for complex logic
Overview
PocketBase is an open-source backend that ships as a single Go binary. It embeds an SQLite database, authentication, file storage, real-time subscriptions, and an admin dashboard β everything you need for a backend in one ~15MB file with zero external dependencies.
PocketBase can be used as a standalone backend or extended with Go code for custom logic. It supports real-time subscriptions via Server-Sent Events, OAuth2 providers for social login, and file uploads with automatic thumbnailing. Its simplicity makes it exceptional for prototypes, personal projects, and small applications.
When to Use
PocketBase is ideal for prototypes, personal projects, small team applications, and any scenario where operational simplicity is the top priority. Itβs not suitable for applications that need horizontal scaling or handle heavy write concurrency.
Getting Started
# Download and run β that's it
wget https://github.com/pocketbase/pocketbase/releases/latest/download/pocketbase_linux_amd64.zip
unzip pocketbase_linux_amd64.zip
./pocketbase serve
# Admin UI at http://localhost:8090/_/
import PocketBase from "pocketbase";
const pb = new PocketBase("http://127.0.0.1:8090");
const records = await pb.collection("posts").getFullList();