terminalskills/skills

pocketbase

>- Assists with building backends using PocketBase, a single-binary backend with embedded SQLite, real-time subscriptions, file storage, and authentication. Use when creating MVPs, prototyping APIs, configuring collections, or setting up auth flows. Trigger words: pocketbase, backend, sqlite, real-time, single binary, collections, pb.

First seen Mar 13, 2026

Installation

$ npx skills add terminalskills/skills --skill pocketbase

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from terminalskills/skills · top by installs.

npx skills add terminalskills/skills

Browse all from terminalskills/skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 146
License LICENSE
Default branch main
Open issues 1
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.0.0
LicenseApache-2.0
CompatibilitySingle binary, runs on Linux/macOS/Windows
More metadata
author
terminal-skills
version
1.0.0
category
devops
tags
["pocketbase","backend","sqlite","real-time","baas"]

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,826 B
  • docs SUMMARY.md 351 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 3 installs

SKILL.md

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 pb.collection("name").getList() for queries, .subscribe() for real-time updates, and expand parameter for fetching related data in a single request.
  • When configuring permissions, set API rules on every collection (listRule, viewRule, createRule, updateRule, deleteRule) using filter syntax like @request.auth.id = user.id for row-level security.
  • When extending functionality, add JavaScript hooks (onBeforeCreateRecord, onAfterUpdateRecord) for business logic, custom routes with routerAdd(), and cron jobs with cronAdd().
  • When deploying, run the single binary with ./pocketbase serve, mount pb_data/ as a Docker volume, and use Caddy or Nginx for HTTPS termination.
  • When backing up, copy the pb_data/ directory or use the built-in backup API before running migrations.
  • 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:

  1. Create an auth collection for users with email/password and Google OAuth2
  2. Create a posts collection with title, body, and relation to users
  3. Set API rules: anyone can list/view, only authenticated authors can create/update/delete their own posts
  4. 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:

  1. Create a messages collection with text, sender relation, and room field
  2. Set up SSE subscription with pb.collection("messages").subscribe("*", callback)
  3. Configure API rules for room-based access control
  4. 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 (null), which breaks client access.
  • Use expand parameter instead of multiple API calls for related data.
  • Validate inputs in hooks (onBeforeCreateRecord) for business logic beyond schema validation.
  • Back up pb_data/ before migrations since SQLite migrations are irreversible.
  • Use view collections for complex queries instead of client-side joins.
  • Keep hooks lightweight; heavy processing should run async or in cron jobs.