PocketBase Skill - Comprehensive Reference
Overview
This skill provides modular, searchable documentation for PocketBase development. Use the table of contents below to navigate to specific topics. The researcher-pocketbase agent can efficiently search and extract information from the reference files based on your query. PocketBase is an open source backend in 1 file. It provides a realtime database, authentication, file storage, an admin dashboard and is extendable to much more.
Quick Navigation
For Newcomers
→ Start with Getting Started for initial setup and basic concepts → Review Collections to understand data modeling → See Authentication for user management → Check API Rules & Filters for security
For Implementation
→ Browse Schema Templates for pre-built data models → Use Records API for CRUD operations → Implement Real-time for live updates → Follow Files Handling for file uploads → Read Working with Relations for data relationships
For Production
→ See Going to Production for deployment → Review Security Rules for access control → Check API Reference for complete API documentation
For Advanced Users
→ Explore Go Extensions for custom functionality → Study Event Hooks for automation → Learn Database Operations for advanced queries → Plan data migrations with Data Migration Workflows
Table of Contents
Core Concepts & Setup
Topic Description When to Use
Getting Started Initial setup, quick start, basic concepts First time using PocketBase, initial configuration
CLI Commands PocketBase CLI, serve, migrate, admin, superuser Development workflow, server management, migrations
Collections Collection types, schema design, rules, indexes Designing data models, creating collections
Authentication User registration, login, OAuth2, JWT tokens Building user accounts, login systems
API Rules & Filters Security rules, filtering, sorting, query optimization Controlling data access, writing efficient queries
Files Handling File uploads, thumbnails, CDN, security Managing file uploads, image processing
Working with Relations One-to-many, many-to-many, data relationships Building complex data models, linking collections
Going to Production Deployment, security hardening, monitoring, backups Moving from development to production
Data Migration Workflows Import/export strategies, scripts, and tooling Planning and executing data migrations
API Reference
Endpoint Description Reference File
Records API CRUD operations, pagination, filtering, batch operations api_records.md
Realtime API WebSocket subscriptions, live updates, event handling api_realtime.md
Files API File uploads, downloads, thumbnails, access control api_files.md
Collections API Manage collections, schemas, rules, indexes api_collections.md
Settings API App configuration, CORS, SMTP, general settings api_settings.md
Logs API Access logs, authentication logs, request logs api_logs.md
Crons API Background jobs, scheduled tasks, automation api_crons.md
Backups API Database backups, data export, disaster recovery api_backups.md
Health API System health, metrics, performance monitoring api_health.md
SDKs & Development Tools
SDK Description Reference File
JavaScript SDK Frontend integration, React, Vue, vanilla JS js_sdk.md
Go SDK Server-side integration, custom apps go_sdk.md
Dart SDK Mobile app integration (Flutter, etc.) dart_sdk.md
Go Extension Framework
Topic Description Reference File
Go Overview Project structure, basic concepts, getting started go_overview.md
Event Hooks Before/After hooks, custom logic, automation go_event_hooks.md
Routing Custom API endpoints, middleware, handlers go_routing.md
Database Query builder, transactions, advanced queries go_database.md
Records Record CRUD, validation, custom fields go_records.md
Collections Dynamic schemas, collection management go_collections.md
Migrations Schema changes, version control, deployment go_migrations.md
Jobs & Scheduling Background tasks, cron jobs, queues go_jobs_scheduling.md
Sending Emails SMTP configuration, templated emails go_sending_emails.md
Rendering Templates HTML templates, email templates, PDFs go_rendering_templates.md
Console Commands CLI commands, migrations, maintenance go_console_commands.md
Realtime Custom realtime logic, event handling go_realtime.md
File System File storage, CDN, external storage providers go_filesystem.md
Logging Structured logging, monitoring, debugging go_logging.md
Testing Unit tests, integration tests, test helpers go_testing.md
Miscellaneous Advanced features, utilities, tips go_miscellaneous.md
Record Proxy Dynamic record behavior, computed fields go_record_proxy.md
Reference Materials
File Description Contents
Security Rules Comprehensive security patterns Owner-based access, role-based access, API rules
Schema Templates Pre-built data models Blog, E-commerce, Social Network, Forums, Task Management
API Reference Complete API documentation All endpoints, parameters, examples
Development Resources
Resource Description Location
Scripts Executable utilities for development scripts/ directory
Assets Templates and configuration files assets/ directory
Docker Config Production-ready Docker setup assets/docker-compose.yml
Caddy Config Automatic HTTPS configuration assets/Caddyfile
Frontend Template HTML/JS integration example assets/frontend-template.html
Collection Schema Blank collection template assets/collection-schema-template.json
How to Use This Skill
For the Researcher-Pocketbase Agent
This skill is designed for efficient information retrieval. When researching PocketBase topics:
-
Start with Core Concepts - Review references/core/ for foundational knowledge
-
Find API Details - Use references/api/ for specific API endpoints
-
Look up Go Extensions - Check references/go/ for custom functionality
-
Find Examples - Reference references/templates/ and references/security_rules.md
Topic Categories
Setup & Configuration
-
Getting Started → Initial setup and basic concepts
-
CLI Commands → Development workflow, server management
-
Going to Production → Deployment and production configuration
-
Collections → Data model design
Data Management
-
Collections → Creating and managing collections
-
Working with Relations → Linking data across collections
-
Files Handling → File uploads and storage
Security & Access Control
-
Authentication → User management
-
API Rules & Filters → Access control and queries
-
Security Rules → Comprehensive security patterns
API Integration
-
Records API → CRUD operations
-
Realtime API → Live updates
-
Files API → File management
-
Other API endpoints → Settings, logs, backups, health
Frontend Development
-
JavaScript SDK → Web integration
-
Schema Templates → Pre-built data models
-
Frontend Template → Integration example
Backend Development
-
Go SDK → Server-side integration
-
Go Extensions → Custom functionality
-
Console Commands → CLI tools
Common Query Patterns
"How do I..."
-
How do I create a blog? → Schema Templates
-
How do I set up authentication? → Authentication
-
How do I upload files? → Files Handling
-
How do I add real-time updates? → Realtime API
"How to configure..."
-
How to configure production? → Going to Production
-
How to set up security rules? → API Rules & Filters, Security Rules
-
How to create custom endpoints? → Go Routing
-
How to schedule jobs? → Jobs & Scheduling
"What's the best way to..."
-
What's the best way to structure my data? → Collections, Working with Relations
-
What's the best way to secure my API? → API Rules & Filters, Security Rules
-
What's the best way to optimize queries? → API Rules & Filters
-
What's the best way to handle files? → Files Handling
"Error:..."
-
CORS errors → Authentication, Going to Production
-
Permission errors → API Rules & Filters, Security Rules
-
File upload errors → Files Handling
-
Slow queries → API Rules & Filters (indexing)
"Need to implement..."
-
Need user roles? → Authentication, Security Rules
-
Need file uploads? → Files Handling
-
Need real-time chat? → Realtime API
-
Need custom logic? → Go Extensions
Quick Reference Index
Common Tasks
-
Set up PocketBase
-
Master the CLI
-
Create collection
-
Add authentication
-
Write security rules
-
Upload files
-
Create relations
-
Query data
-
Set up real-time
-
Deploy to production
Code Examples
-
React integration
-
Vue.js integration
-
Create record
-
Filter queries
-
File upload
-
Custom endpoint
-
Event hook
Best Practices
-
Schema design
-
Security rules
-
Query optimization
-
Production deployment
File Locations
Core Documentation
/references/core/ ├── getting_started.md # Initial setup and concepts ├── cli_commands.md # CLI commands and server management ├── collections.md # Data modeling and collections ├── authentication.md # User management ├── api_rules_filters.md # Security and querying ├── files_handling.md # File uploads and storage ├── working_with_relations.md # Data relationships └── going_to_production.md # Deployment guide
API Reference
/references/api/ ├── api_records.md # CRUD operations ├── api_realtime.md # WebSocket subscriptions ├── api_files.md # File management ├── api_collections.md # Collection operations ├── api_settings.md # App configuration ├── api_logs.md # Logging ├── api_crons.md # Background jobs ├── api_backups.md # Backups └── api_health.md # Health checks
Go Extensions
/references/go/ ├── go_overview.md # Getting started ├── go_event_hooks.md # Event system ├── go_routing.md # Custom routes ├── go_database.md # Database operations ├── go_records.md # Record management ├── go_collections.md # Collection management ├── go_migrations.md # Schema changes ├── go_jobs_scheduling.md # Background tasks ├── go_sending_emails.md # Email integration ├── go_rendering_templates.md # Templates ├── go_console_commands.md # CLI tools ├── go_realtime.md # Custom realtime ├── go_filesystem.md # File storage ├── go_logging.md # Logging ├── go_testing.md # Testing ├── go_miscellaneous.md # Advanced topics └── go_record_proxy.md # Dynamic behavior
SDKs
/references/sdk/ ├── js_sdk.md # JavaScript ├── go_sdk.md # Go └── dart_sdk.md # Dart
Templates & Security
/references/ ├── security_rules.md # Security patterns ├── templates/ │ └── schema_templates.md # Pre-built schemas └── api_reference.md # Complete API docs
Information Architecture
This skill follows a modular architecture designed for progressive disclosure:
-
Quick Access - SKILL.md provides immediate overview and navigation
-
Focused Topics - Each reference file covers one specific area
-
Cross-References - Files link to related topics
-
Examples First - Practical code examples in each file
-
Searchable - Clear titles and descriptions for quick lookup
When to Use Each Section
references/core/
-
New users starting with PocketBase
-
Understanding fundamental concepts
-
Basic implementation tasks
references/api/
-
Implementing specific API features
-
Looking up endpoint details
-
API integration examples
references/go/
-
Building custom PocketBase extensions
-
Advanced functionality
-
Custom business logic
references/sdk/
-
Frontend or mobile integration
-
SDK-specific features
-
Language-specific examples
references/security_rules.md
-
Complex access control scenarios
-
Security best practices
-
Multi-tenant applications
references/templates/
-
Rapid prototyping
-
Common application patterns
-
Pre-built data models
Notes for Researchers
This skill contains over 30 reference files covering all aspects of PocketBase development. The researcher-pocketbase agent should:
-
Match queries to appropriate topic areas
-
Extract specific information from relevant files
-
Provide comprehensive answers using multiple references
-
Suggest related topics for further reading
-
Identify best practices and common pitfalls
Each reference file is self-contained with examples, explanations, and best practices. Use the table of contents above to quickly navigate to the most relevant information for any PocketBase-related question.