Instant Database Branching
Database branching allows developers to fork live databases into isolated preview environments in under 200 milliseconds.
Branching Lifecycle Flow
flowchart TD
subgraph ProductionEnv ["🟢 Production Database (prod.pocket-kit...)"]
ProdDB[("Live SQLite data.db")]
ProdHooks["Server Logic (pb_hooks/)"]
ProdDB ~~~ ProdHooks
end
subgraph SnapshotEngine ["⚡ Pocket Kit Snapshot & Provisioning Engine"]
CopyOp["1. Atomic Disk Copy (data.db & pb_hooks)"]
PortAlloc["2. Allocate Port (8091..8999)"]
SpawnProc["3. Spawn Isolated PocketBase Process"]
CaddyRoute["4. Dynamic Ingress (staging.pocket-kit...)"]
CopyOp --> PortAlloc --> SpawnProc --> CaddyRoute
end
subgraph StagingEnv ["🟡 Staging Branch (staging.pocket-kit...)"]
StagingDB[("Isolated SQLite Copy")]
StagingHooks["Isolated Server Hooks"]
StagingDB ~~~ StagingHooks
end
ProductionEnv -->|"Trigger Staging Clone (< 200ms)"| SnapshotEngine
SnapshotEngine -->|"Deploy Instant Staging Branch"| StagingEnv
Key Benefits
- Zero Downtime: Production remains fully operational while the snapshot is copied.
- True Parity: Staging contains the exact schema, migrations, data records, and server hooks.
- Safe Destruction: Delete or reset the staging branch anytime with one click.