# Awesome PocketBase

> Curated list of awesome PocketBase resources.

PocketBase is an open source backend consisting of embedded database (SQLite) with realtime subscriptions, built-in auth management, convenient dashboard UI and simple REST-ish API.

## Contents

- Official Packages
- Top PocketBase-specific Projects (>100 stars)
- Major Community Projects
- JSVM Plugins
- Go Plugins
- React
- Svelte
- Vue
- Solid
- Dart/Flutter
- C#
- D
- Node.js
- Unofficial PocketBase Clients (SDKs)
- Self Hosting
- TypeScript tools
- SQLite tools
- Other tools
- Showcases
- PocketPorts Packages

## Official Packages

- Golang Server - The main PocketBase server.

- JavaScript SDK - Browser and Node.js for interacting with the PocketBase API.

- Dart SDK - Multi-platform SDK for interacting with the PocketBase Web API.

## Top PocketBase-specific Projects (>100 stars)

- pockethost.io - Free and pro PocketBase hosting.
- PocketBase Typegen - Generate TypeScript types from the SQLite db file.
- PocketBase Docker - Docker setup supporting multiple architectures and automatically updated with PocketBase releases.
- PocketBase+Stripe - Go extended PocketBase for Stripe subscription integration.
- PocketBase+Lemonsqueezy - Go extended PocketBase for Lemonsqueezy subscription integration.
- SvelteKit Starter - A starter-kit showing how to use customized PocketBase as a backend to SvelteKit frontend.
- SvelteKit Auth - This project is designed as a sample implementation reference for getting authentication setup using SvelteKit.
- SvelteKit PocketBase Auth - Demo login and registration pages with examples.

## Major Community Projects

- pocketpages.dev - Server-side JS pages and hosting for PocketBase.
- pocodex.dev - The unofficial PocketBase plugin repository and code exchange.
- PocketPorts - NPM/Node.js packages ported to PocketBase JSVM. Official listing is hosted here in awesome-pocketbase.

## JSVM Plugins

- pocketbase-otp - One-Time Passwords for <=v0.22.*
- pocketpages - Server-side EJS pages for PocketBase.
- pocketbase-presigned-urls - Serve file uploads from presigned S3 URLs.

## Go Plugins

- Telegram auth - Add Telegram auth (Widget button and WebApp).
- Ngrok - Expose local PocketBase to the internet with ngrok.
- Proxy - Proxy requests to another other host. Can be useful when you want to use separate server as frontend (like Next.js), but serve everything with same port.
- Webhooks - Add webhook support in the admin UI to send `create`, `update` and `delete` events on selected collections via POST request to other systems.
- Typescript Generator - Typescript generator standalone / library with auto generation hook or command

## React

- PocketBase React - Unofficial React SDK (React, React Native, Expo) for interacting with the PocketBase JavaScript SDK.
- PocketBase Next.js App Template - PocketBase Next.js Template with server & browser client using cookies.
- Next.js PocketBase Auth - Sample Next.js 15 application with PocketBase integration, a typed client, server-side and client-side rendering techniques, and server actions.
- next-pocketbase-auth - A lightweight authentication wrapper for Next.js applications, providing easy-to-use utilities for handling user session in both client and server components.

## Svelte

- svelte-query-pocketbase - TanStack Query wrappers around PocketBase for Svelte and SvelteKit that updates the query cache in realtime.
- pocketbase-sveltekit-static - A minimalist template with configured authorization featuring a single Docker image (from 55 MB) for deploying.

## Vue

- Vue 3 + Vite starter kit - A starter kit for Vue 3 + Vite + PocketBase.
- Tutorial - Vue 3 tutorial.
- Quasar starter kit - Pocketbase with Quasar.
- PocketNuxt - A Nuxt3 PocketBase starter that builds into a single binary.

## Solid

- Solid-pocketbase-hooks - Pocketbase hooks for Solid.js

## Dart/Flutter

- PocketBase Drift - A PocketBase client cached with Drift.
- Dart Generator - Generate type safe client SDKs for use in local SQLite, JSON or GraphQL resolvers.
- PocketBase Server Flutter - A Flutter plugin to run PocketBase server directly from Android/iOS.

## C

- ORM and code generator - An ORM to manage your PocketBase Application.
- C# SDK - C# SDK for PocketBase and demo Blazor WASM webapp.

## D

- libpb - PocketBase client wrapper for D with automatic serialization and deserialization to and from JSON.

## Node.js

- gobot - PocketBase as an npm package. CLI and API.

## Unofficial PocketBase Clients (SDKs)

- Go - PocketBase Client in Golang.
- Kotlin - PocketBase Client in Kotlin.
- Kotlin (Multiplatform) - PocketBase Client in Kotlin.
- Python (Sync) - PocketBase Client in Python.
- Python (Async) - PocketBase Client in Python.
- C# - PocketBase Client in C#.
- Rust - PocketBase Client in Rust.
- Unity (Multiplatform) - PocketBase client for Unity 3D game engine.

## Self Hosting

- DigitalOcean - Guide to deploy in a Droplet.
- Fly.io - Guide to deploy for free in Fly.io.
- LocalXpose - Allow public access to a localhost instance.
- PocketBase Docker - Docker images supporting multiple architectures and updated with latest PocketBase releases.
- PocketBase on Dokku - Deploy PocketBase instances on Dokku effortlessly.
- PBLauncher - Manage PocketBase instances — fast, lightweight, open source.

## TypeScript tools

- pocketbase-jsvm - JSVM typings.
- pb_hooks starter kit - Build PocketBase JavaScript hooks using TypeScript.
- typed-pocketbase - Generate types from your PocketBase instance and enjoy fully type-safe queries.
- pocketbase-ts - SDK wrapper with more readable `options` syntax and full type-safety.
- pocketbase-query - A TypeScript-based query builder designed to generate complex filter queries for PocketBase. It allows for easy construction of queries using various operators while maintaining a fluent and chainable API.
- pocketbase-schema-generator - JS hook for automatically generating schema files. (Zod/TS interfaces)
- pb-query - A flexible, strongly-typed query builder with useful helpers to simplify the querying process, featuring examples, documentation, and full autocompletion based on your schema, directly in the IDE.

## SQLite tools

- Marmot - A distributed SQLite replicator with PocketBase tutorial.
- Litestream - Streaming SQLite replication.
- PocketBase+Litestream example - Template showing Litestream running with PocketBase.
- PocketBase with Litestream - Docker example of PocketBase saving/restoring from Litestream.

## Other tools

- PocketBaseUML - A free, open-source web application that generates UML diagrams based on PocketBase databases.
- PocketBaseMobile - Android and iOS frameworks for running PocketBase from mobile.
- pbf - Library for serializing and deserializing PocketBase filter syntax.
- PocketBase Templates - A open-source collection of PocketBase schemas to quickly get started.
- pocketbase-queue - A type-safe queue for background tasks using PocketBase.
- PocketBase GPT - A GPT that has all of PocketBase’s documentation uploaded to it, to give more accurate and up-to-date answers.
- PocketBase API Rule Builder - A free, open-source web application that makes it easy to generate API rules for PocketBase collections visually.

## Showcases

- Vimsnake - A realtime WASM game where Vim commands are used as controller inputs.
- ToDo - React-based To-Do demo app.
- Realtime Blog - A React-based realtime blog demo.
- oAuth - A React-based oAuth demo.
- Flutter Chat App - A chat app using PocketBase in Flutter.
- JustJot - A keyboard-first note-taking full-featured Progressive Web App. frontend repo / backend repo
- Cookie auth demo - A demo of cookie based authentication flow for PocketBase.
- Adnexos - Self-hostable expense-splitter on the web.
- pocketbase-libsql - Scaling Pocketbase with LibSQL and sqld - a Proof Of Concept

## PocketPorts Packages

Ports of NPM/Node.js packages to the PocketBase JSVM.

OG Package | Ported Package | Description |
--- | --- | --- | ---
Node.js | pocketbase-node | Node.js core packages (`fs`, `process`, etc) |
ejs | pocketbase-ejs | Embedded JavaScript templates - http://ejs.co |
marked | ✅ works without changes | A markdown parser and compiler. Built for speed. |

pocketbase.md Github