Skip to content
OpenSmartRoute
Skillv1.0.0

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, conf

by terminalskills(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from terminalskills/skills (skills/pocketbase/SKILL.md). Install upstream with npx skills add terminalskills/skills --skill pocketbase. Copyright stays with the author (Apache-2.0).

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.

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/terminalskills-skills-pocketbase/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

terminalskills-skills-pocketbase.ocm.jsonjson
{
  "ocm": "1",
  "id": "terminalskills-skills-pocketbase",
  "kind": "skill",
  "name": "pocketbase",
  "description": "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.",
  "publisher": "terminalskills",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "general"
    ],
    "tags": [
      "skill-md",
      "pocketbase",
      "backend",
      "sqlite",
      "real-time",
      "baas",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "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."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/terminalskills/skills",
      "path": "skills/pocketbase/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/terminalskills/skills/blob/HEAD/skills/pocketbase/SKILL.md",
      "key": "terminalskills/skills/skills/pocketbase/SKILL.md"
    },
    "compatibility": "Single binary, runs on Linux/macOS/Windows",
    "license": "Apache-2.0"
  },
  "instructions": "# PocketBase\n\n## Overview\n\nPocketBase 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.\n\n## Instructions\n\n- 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.\n- When building client integra",
  "cost": {
    "context_tokens": 805
  }
}

Fetch it by URL: GET /api/v1/registry/terminalskills-skills-pocketbase/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.