install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/TerminalSkills/skills/pocketbase" ~/.claude/skills/comeonoliver-skillshub-pocketbase && rm -rf "$T"
manifest:
skills/TerminalSkills/skills/pocketbase/SKILL.mdsource content
PocketBase
Overview
PocketBase is an open-source backend packaged as a single binary, providing an embedded SQLite database, real-time subscriptions, file storage, and built-in authentication. It auto-generates REST APIs for collections and is ideal for shipping full-stack applications with minimal infrastructure complexity.
Instructions
- When defining collections, choose the appropriate type: base collections for standard CRUD, auth collections for user management with email/password and OAuth2, and view collections for read-only SQL-backed queries.
- When building client integrations, use the JavaScript/TypeScript SDK with
for queries,pb.collection("name").getList()
for real-time updates, and.subscribe()
parameter for fetching related data in a single request.expand - When configuring permissions, set API rules on every collection (
,listRule
,viewRule
,createRule
,updateRule
) using filter syntax likedeleteRule
for row-level security.@request.auth.id = user.id - When extending functionality, add JavaScript hooks (
,onBeforeCreateRecord
) for business logic, custom routes withonAfterUpdateRecord
, and cron jobs withrouterAdd()
.cronAdd() - When deploying, run the single binary with
, mount./pocketbase serve
as a Docker volume, and use Caddy or Nginx for HTTPS termination.pb_data/ - When backing up, copy the
directory or use the built-in backup API before running migrations.pb_data/ - When scaling, note that SQLite handles approximately 50,000 concurrent reads; for write-heavy workloads exceeding 100K daily active users, consider PostgreSQL alternatives.
Examples
Example 1: Build an MVP backend with authentication
User request: "Set up a PocketBase backend with user auth and a posts collection"
Actions:
- Create an auth collection for users with email/password and Google OAuth2
- Create a posts collection with title, body, and relation to users
- Set API rules: anyone can list/view, only authenticated authors can create/update/delete their own posts
- Configure the JS SDK for client-side CRUD and auth flows
Output: A fully functional backend with auth, permissions, and auto-generated REST API.
Example 2: Add real-time features
User request: "Enable live updates for a chat application using PocketBase"
Actions:
- Create a messages collection with text, sender relation, and room field
- Set up SSE subscription with
pb.collection("messages").subscribe("*", callback) - Configure API rules for room-based access control
- Handle client auto-reconnect with exponential backoff
Output: A real-time chat backend with live message delivery via Server-Sent Events.
Guidelines
- Always set API rules on every collection; default is admin-only (
), which breaks client access.null - Use
parameter instead of multiple API calls for related data.expand - Validate inputs in hooks (
) for business logic beyond schema validation.onBeforeCreateRecord - Back up
before migrations since SQLite migrations are irreversible.pb_data/ - Use view collections for complex queries instead of client-side joins.
- Keep hooks lightweight; heavy processing should run async or in cron jobs.