SKILL.md
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](references/core/gettingstarted.md) for initial setup and basic concepts → Review [Collections](references/core/collections.md) to understand data modeling → See [Authentication](references/core/authentication.md) for user management → Check [API Rules & Filters](references/core/apirules_filters.md) for security
For Implementation
→ Browse [Schema Templates](references/templates/schematemplates.md) for pre-built data models → Use [Records API](references/api/apirecords.md) for CRUD operations → Implement [Real-time](references/api/apirealtime.md) for live updates → Follow [Files Handling](references/core/fileshandling.md) for file uploads → Read [Working with Relations](references/core/workingwithrelations.md) for data relationships
For Production
→ See [Going to Production](references/core/goingtoproduction.md) for deployment → Review [Security Rules](references/securityrules.md) for access control → Check [API Reference](references/apireference.md) for complete API documentation
For Advanced Users
→ Explore [Go Extensions](references/go/gooverview.md) for custom functionality → Study [Event Hooks](references/go/goeventhooks.md) for automation → Learn [Database Operations](references/go/godatabase.md) for advanced queries → Plan data migrations with [Data Migration Workflows](references/core/data_migration.md)
Table of Contents
Core Concepts & Setup
| Topic | Description | When to Use |
|---|---|---|
| [Getting Started](references/core/getting_started.md) | Initial setup, quick start, basic concepts | First time using PocketBase, initial configuration |
| [CLI Commands](references/core/cli_commands.md) | PocketBase CLI, serve, migrate, admin, superuser | Development workflow, server management, migrations |
| [Collections](references/core/collections.md) | Collection types, schema design, rules, indexes | Designing data models, creating collections |
| [Authentication](references/core/authentication.md) | User registration, login, OAuth2, JWT tokens | Building user accounts, login systems |
| [API Rules & Filters](references/core/apirulesfilters.md) | Security rules, filtering, sorting, query optimization | Controlling data access, writing efficient queries |
| [Files Handling](references/core/files_handling.md) | File uploads, thumbnails, CDN, security | Managing file uploads, image processing |
| [Working with Relations](references/core/workingwithrelations.md) | One-to-many, many-to-many, data relationships | Building complex data models, linking collections |
| [Going to Production](references/core/goingtoproduction.md) | Deployment, security hardening, monitoring, backups | Moving from development to production |
| [Data Migration Workflows](references/core/data_migration.md) | 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 | [apirecords.md](references/api/apirecords.md) |
| Realtime API | WebSocket subscriptions, live updates, event handling | [apirealtime.md](references/api/apirealtime.md) |
| Files API | File uploads, downloads, thumbnails, access control | [apifiles.md](references/api/apifiles.md) |
| Collections API | Manage collections, schemas, rules, indexes | [apicollections.md](references/api/apicollections.md) |
| Settings API | App configuration, CORS, SMTP, general settings | [apisettings.md](references/api/apisettings.md) |
| Logs API | Access logs, authentication logs, request logs | [apilogs.md](references/api/apilogs.md) |
| Crons API | Background jobs, scheduled tasks, automation | [apicrons.md](references/api/apicrons.md) |
| Backups API | Database backups, data export, disaster recovery | [apibackups.md](references/api/apibackups.md) |
| Health API | System health, metrics, performance monitoring | [apihealth.md](references/api/apihealth.md) |
SDKs & Development Tools
| SDK | Description | Reference File |
|---|---|---|
| JavaScript SDK | Frontend integration, React, Vue, vanilla JS | [jssdk.md](references/sdk/jssdk.md) |
| Go SDK | Server-side integration, custom apps | [gosdk.md](references/sdk/gosdk.md) |
| Dart SDK | Mobile app integration (Flutter, etc.) | [dartsdk.md](references/sdk/dartsdk.md) |
Go Extension Framework
| Topic | Description | Reference File |
|---|---|---|
| Go Overview | Project structure, basic concepts, getting started | [gooverview.md](references/go/gooverview.md) |
| Event Hooks | Before/After hooks, custom logic, automation | [goeventhooks.md](references/go/goeventhooks.md) |
| Routing | Custom API endpoints, middleware, handlers | [gorouting.md](references/go/gorouting.md) |
| Database | Query builder, transactions, advanced queries | [godatabase.md](references/go/godatabase.md) |
| Records | Record CRUD, validation, custom fields | [gorecords.md](references/go/gorecords.md) |
| Collections | Dynamic schemas, collection management | [gocollections.md](references/go/gocollections.md) |
| Migrations | Schema changes, version control, deployment | [gomigrations.md](references/go/gomigrations.md) |
| Jobs & Scheduling | Background tasks, cron jobs, queues | [gojobsscheduling.md](references/go/gojobsscheduling.md) |
| Sending Emails | SMTP configuration, templated emails | [gosendingemails.md](references/go/gosendingemails.md) |
| Rendering Templates | HTML templates, email templates, PDFs | [gorenderingtemplates.md](references/go/gorenderingtemplates.md) |
| Console Commands | CLI commands, migrations, maintenance | [goconsolecommands.md](references/go/goconsolecommands.md) |
| Realtime | Custom realtime logic, event handling | [gorealtime.md](references/go/gorealtime.md) |
| File System | File storage, CDN, external storage providers | [gofilesystem.md](references/go/gofilesystem.md) |
| Logging | Structured logging, monitoring, debugging | [gologging.md](references/go/gologging.md) |
| Testing | Unit tests, integration tests, test helpers | [gotesting.md](references/go/gotesting.md) |
| Miscellaneous | Advanced features, utilities, tips | [gomiscellaneous.md](references/go/gomiscellaneous.md) |
| Record Proxy | Dynamic record behavior, computed fields | [gorecordproxy.md](references/go/gorecordproxy.md) |
Reference Materials
| File | Description | Contents |
|---|---|---|
| [Security Rules](references/security_rules.md) | Comprehensive security patterns | Owner-based access, role-based access, API rules |
| [Schema Templates](references/templates/schema_templates.md) | Pre-built data models | Blog, E-commerce, Social Network, Forums, Task Management |
| [API Reference](references/api_reference.md) | 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/andreferences/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](references/core/getting_started.md#quick-setup)
- [Master the CLI](references/core/cli_commands.md#overview)
- [Create collection](references/core/collections.md#creating-collections)
- [Add authentication](references/core/authentication.md#registration)
- [Write security rules](references/core/apirulesfilters.md#common-rule-patterns)
- [Upload files](references/core/files_handling.md#uploading-files)
- [Create relations](references/core/workingwithrelations.md#creating-relations)
- [Query data](references/api/api_records.md#read-records)
- [Set up real-time](references/api/api_realtime.md#subscriptions)
- [Deploy to production](references/core/goingtoproduction.md#deployment-options)
Code Examples
- [React integration](references/core/getting_started.md#react-integration)
- [Vue.js integration](references/core/getting_started.md#vuejs-example)
- [Create record](references/api/api_records.md#create-record)
- [Filter queries](references/api/api_records.md#filtering)
- [File upload](references/core/files_handling.md#single-file-upload)
- [Custom endpoint](references/go/go_overview.md#custom-api-endpoints)
- [Event hook](references/go/go_overview.md#event-hooks)
Best Practices
- [Schema design](references/core/collections.md#best-practices)
- [Security rules](references/security_rules.md#best-practices)
- [Query optimization](references/api/api_records.md#performance-tips)
- [Production deployment](references/core/goingtoproduction.md#best-practices-checklist)
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.