New in v0.6.0: background jobs, reliable webhooks & bun create cratebase

A backend in one crate.

Collections, auth, files and realtime in one self-hostable Rust binary. SQLite today, Postgres when you need it.

curl -fsSL https://cratebase.dev/install.sh | sh

Access rules run inside the query.

Write one expression per action. Cratebase compiles it into SQL, so a row a user can't see never leaves the database. Try it: change the rule, or who's asking.

List rule on posts
published = true || author = @request.auth.id
Signed in as
GET /api/collections/posts/records200 3 of 3 rows
  • Shipping the places search featureAmara Chenpublishednot returned
  • Why we moved off three servicesNico Audypublishednot returned
  • Draft: nearest-place notesNico Audydraftnot returned
Simplified SQLSELECT * FROM posts WHERE published = TRUE OR author = :auth_id:auth_id = "u_nico"

From schema to typed client in one command.

cratebase dev writes the types and keeps them current. No codegen package, no Node toolchain.

Starting from scratch? bun create cratebase scaffolds a whole app — Next.js, Vite + React, or Expo — already wired up to it. See starter kits →

$ curl -fsSL https://cratebase.dev/install.sh | sh
Downloading Cratebase 0.6.0 for x86_64-unknown-linux-musl...
Cratebase 0.6.0 installed to ~/.local/bin/cratebase
$ cratebase dev

  cratebase dev
  ------------------------------------------------------------
  API:            http://127.0.0.1:8090/api/
  Dashboard:      http://127.0.0.1:8090/_/
  Superuser:      admin@localhost / ••••••••••  (generated; change it)
  Schema:         applied (3 collection(s))
  Types:          ./cratebase-types.d.ts
  Mail inbox:     http://127.0.0.1:8090/api/dev/mails

A dashboard for every setting.

Embedded in the binary. Real screens from a running instance.

Settings / Email templates / welcomeDocs
The Cratebase visual email template editor, editing the welcome email with {{user.name}} and {{appName}} variables and a theme panel.The Cratebase visual email template editor, editing the welcome email with {{user.name}} and {{appName}} variables and a theme panel.

10× PocketBase's search throughput, on the same machine.

22 of 24 benchmark cells faster in the latest idle-host run, measured over HTTP, back to back.

Methodology and every result
CratebasePocketBaserequests/sec, higher is better — median of 3 runs
View as a data table
Cratebase vs PocketBase requests per second by category
CategoryConcurrencyCratebase req/sPocketBase req/sRatio
search5049,9864,77410.47x
search-auth10038,7683,9899.72x
search-wide10016,4141,9248.53x
create10011,9606,6061.81x
delete10011,3215,0302.25x

Coming from PocketBase? Your SDK already works.

Same wire protocol: 180 of 181 conformance tests pass against the official SDK. Your data moves in one command, and passwords keep working.

Migration guide
$ cratebase migrate-from-pocketbase pb_data \
    --dir cratebase_data

- new PocketBase("https://pocketbase.example.com")
+ new PocketBase("https://cratebase.example.com")

Ship the next one in one binary.

MIT licensed. Self-host it, fork it, ship it.