Иногда хочется бэкенд, который не требует 15 микросервисов, Kubernetes и команды из пяти человек. PocketBase — это именно такой случай: скачал один бинарник, запустил — и у вас готовая база данных, REST API, админ-панель и аутентификация.
Что внутри
PocketBase построен поверх SQLite и написан на Go. Это принципиально: никаких внешних зависимостей, никакого PostgreSQL. Бинарник на 20 мегабайт содержит в себе весь backend.
- База данных — SQLite с миграциями из коробки
- Аутентификация — email/пароль, OAuth2 (Google, GitHub, Apple и другие), сброс пароля
- Файловое хранилище — загрузка файлов, ресайз изображений, защита через токены
- Админ-панель — управление коллекциями, пользователями, просмотр логов
- Realtime — подписки на изменения данных через Server-Side Events
API генерируется автоматически на основе схемы коллекций. Создали коллекцию «posts» в админке — сразу появились CRUD-эндпоинты.
Расширяемость
PocketBase можно расширять на Go: кастомные роуты, хуки, middleware, веб-сокеты. Это превращает его из простого backend-as-a-service в полноценный фреймворк для API. Для JavaScript/TypeScript-разработчиков есть SDK.
Ограничения
SQLite — не для high-write сценариев. Если у вас тысячи конкурентных записей в секунду — смотрите в сторону PostgreSQL. Горизонтальное масштабирование отсутствует: PocketBase — это один сервер. Но для 95% проектов этого более чем достаточно.
Для каких проектов подходит
MVP и прототипы, внутренние инструменты, админки, mobile-бэкенды, SaaS на ранней стадии. Всё, где нужно быстро получить работающий API без лишней инфраструктуры.