Collections, REST API, auth, realtime, file uploads, server-side hooks, MCP for AI agents — all from one executable. Drop it on a server, run it, done.
Most "backend-as-a-service" products force a tradeoff: hosted convenience for vendor lock-in. vaultbase is the opposite end of the dial.
Compiled with bun build --compile. Cross-compiles to Linux x64,
macOS arm64/x64, Windows x64. Zero native deps shipped alongside —
the executable is genuinely self-contained.
Each collection is a real SQLite table — vb_posts, vb_users. Hit them with sqlite3, run native
indexes, do real schema migrations. No JSON1 acrobatics.
Schema, API rules, hooks, custom HTTP routes, cron jobs, queue workers — all written in JavaScript directly in the admin UI, with Monaco autocomplete typed to your collection's actual record shape.
For the kind of project where you spend a weekend wiring five managed services together, vaultbase is one process on one box.
scp as a backup
No add-ons, no plugins, no "Pro tier". Everything below ships in v0.11.4.
Real SQL tables, typed fields with validation, REST with filter / sort / expand / projection, ETag-aware optimistic concurrency, ALTER TABLE-style schema diffs when you edit fields.
Email + password, OAuth2 with Google / GitHub / Apple / Microsoft / Discord / 5 more (PKCE-enabled, generic OIDC supported), OTP / magic-link, MFA / TOTP, anonymous sessions, admin impersonation.
WebSocket endpoint with topic subscriptions — collection, record, child records, or * for everything. SSE fallback. Per-connection auth respects API rules.
Local FS by default. One-click S3 / R2 presets via Bun's native client. On-the-fly thumbnails, MIME + size validation, and rule-based protection: per-field rule, one-time tokens, IP-bound, downloads audited.
Six hook points (before/after × CRUD), custom HTTP routes, UTC cron, queue workers, outbound HMAC-signed webhooks on every record event. Built-in feature flags with targeting + rollout. Push notifications via OneSignal + FCM with one helpers.notify(userId, payload) call — drivers handle OAuth, dead-token cleanup, retries. Full typed standard library: db · fs · http · security · template · cron · mails · flags · webhooks · notify. Monaco autocomplete throughout.
Request log viewer with rule-eval inspection. Admin audit log + UI. Per-collection record history + point-in-time restore. Backup CLI to S3/R2/B2. AES-GCM at rest. Active admin sessions + revoke + force-logout-all. Every release keyless-signed via Sigstore cosign with a CycloneDX SBOM.
Per-email + per-IP brute-force lockout. Configurable CORS allow-list. Password policy with optional Have-I-Been-Pwned k-anonymity check. Hook SSRF egress guard. Prometheus exposition at /api/v1/metrics with optional bearer auth. Update checker against GitHub releases.
Vaultbase ships an MCP server. Claude Desktop, Cursor, Continue, Cline, Zed, ChatGPT — any agent that speaks the protocol can browse collections, query / mutate records, read logs, run admin tasks. Tools auto-generated per collection, scope-gated via API tokens, every call audited. stdio + HTTP+SSE transports; stateless POST for cloud agents, npm bridge (@vaultbase/mcp) for stdio-only clients connecting to remote deployments. Prompt-injection markup on record content.
No CLI dance, no migrations folder, no redeploy. Edit a hook, save, the next request runs the new code.
Honest table. We're a single-binary open-source backend for solo devs and small teams — not a globally distributed multi-region platform.
| vaultbase | PocketBase | Supabase | Firebase | |
|---|---|---|---|---|
| Single binary, self-hosted | ● yes | ● yes | ● no (multi-service) | ● no |
| Real SQL tables (not JSON blobs) | ● yes (SQLite) | ● yes (SQLite) | ● yes (Postgres) | ● no (Firestore) |
| Server-side logic editable in browser | ● yes | ● no (file-based JSVM) | ● partial (Edge Fns) | ● no (deploy only) |
| Built-in queue workers + cron | ● yes (native) | ● cron only (JSVM) | ● via pg_cron + pgmq | ● external (Cloud Tasks) |
| Realtime (WebSocket + SSE) | ● yes (both) | ● SSE only | ● yes (WebSocket) | ● yes (proprietary) |
| Record history + point-in-time restore | ● yes (per-collection toggle) | ● no | ● no (DIY triggers) | ● no |
| Optimistic concurrency (ETag) | ● yes (auto in SDK) | ● no | ● manual (xmin) | ● manual |
| Vector search (built-in) | ● yes (vector field + nearVector) | ● no | ● yes (pgvector add-on) | ● no |
| Typed end-to-end SDK | ● yes (codegen + vb.q tag) | ● no (stringly-typed) | ● partial (gen-types) | ● partial |
| Signed releases (cosign) + SBOM | ● yes (keyless Sigstore) | ● no | ● managed by Supabase | ● managed by Google |
| Built-in feature flags + targeting | ● yes (UI + REST + sticky rollout) | ● no | ● no (use LaunchDarkly) | ● yes (Remote Config) |
| First-party MCP server (AI agents) | ● yes (stdio + HTTP+SSE, scoped tokens) | ● no | ● no | ● no |
| Outbound webhooks (HMAC + retry) | ● yes (built-in + admin UI) | ● DIY (in JS hooks) | ● DIY (pgnotify) | ● yes (Cloud Functions) |
| Push notifications (OneSignal + FCM) | ● yes (provider-agnostic helpers.notify) | ● DIY (in JS hooks) | ● DIY (Edge Fns + 3rd party) | ● yes (FCM only) |
| Append-only admin audit log | ● yes (UI + REST) | ● no | ● DIY (pgaudit) | ● DIY (Cloud Audit) |
| Brute-force lockout (per-email + IP) | ● yes (built-in) | ● no | ● DIY | ● yes (App Check) |
| Per-field file rules (one-time + IP-bound) | ● yes (UI + audit row) | ● no (one global flag) | ● DIY (RLS on storage) | ● DIY (rules.txt) |
| Prometheus metrics endpoint | ● yes (/api/v1/metrics) | ● no | ● via pgexporter / cloud | ● via Cloud Monitoring |
| Open source license | ● MIT | ● MIT | ● Apache 2.0 | ● proprietary |
| Globally distributed multi-region | ● no (single host) | ● no | ● yes | ● yes |
| Free for self-host | ● yes | ● yes | ● yes | ● no (cloud only) |
The first run launches a setup wizard that creates the first admin account.
There is no second asset server, no native module, no companion daemon. Your data is files you can scp.
No native binaries shipped alongside the executable. The whole thing is one self-contained build.
If you have a dedicated platform team and run your own Postgres + Redis + S3 stack, vaultbase isn't for you. That's by design.
Download v0.11.4, run ./vaultbase, walk away with your data
whenever you want.