Documentation
What backd is, and where to find things.
backd is an open-source (MIT), config-driven backend: one stateless Go service over MongoDB. You declare realms, databases and collections as files on disk (a JSON Schema per collection, optional indexes and access rules) and backd serves a schema-validated, queryable REST API for them, with built-in users and sessions, API keys, an admin API, and server-side functions for the logic clients can’t be trusted with.
Where to start
| I want to… | Go to |
|---|---|
| Try it in a few minutes: start here | Quickstart |
| Find out whether backd fits my project | Is backd for you? |
| Understand the concepts: realm, database, collection | Getting started |
| Look up a word | Glossary |
| Build a whole app, chapter by chapter | Tutorial |
| Build my own backend: schemas, HTTP API, users, functions, files, push | Build |
| Run and administer a deployment: providers, monitoring, backup, hardening | Operate |
| Work on backd itself: workflow, architecture, API contract | Contribute |
| See complete applications | Examples |
| Fix an error I met | Troubleshooting |
What you get
- Configuration as files. Invalid config stops startup and names the file;
backd config checkruns the same checks in CI. - Schema-validated writes, mirrored as a MongoDB validator, with field-level errors and optimistic concurrency (
ETag,If-Match). - Queries without injection:
where,order_by, pagination and counts over an allowlisted query language. - Users, sessions and API keys per realm, with brute-force protection, invitations, network restrictions and an audit trail; administration through an admin API and the command line, never database credentials.
- Access rules (
rules:incollection.yaml) decided per document, with read rules applied inside the database query. - Server-side functions in isolated Deno processes: sync calls, background jobs, cron schedules, webhooks, encrypted secrets, rate limits, idempotency and a network allowlist.
- Files, push, organizations and realtime: S3-compatible storage per realm, FCM/APNs/Web Push senders, B2B teams and roles, and server-sent events of the changes a caller may read.
- Clients:
backd-jsfor browsers and Node,package:backdfor Flutter and standalone Dart,pkg/clientfor Go,backdon PyPI for Python, generated TypeScript, Dart, Go or Python types per realm, and a per-realm OpenAPI document for every other language. - A production path: a tested reference deployment (TLS, least-privilege MongoDB, encrypted backups), a config fingerprint so every instance runs the same configuration, and signed releases.
Versions
The current version is v0.9.10. What each release added and what breaks is in the release notes and the changelog; how to move a running deployment to a newer one is in the Upgrading to sections of Operate.
backd has no installed base yet: until a stable release is declared, breaking changes are allowed and are listed in the release notes.
What backd is, its core concepts and main features, and where to go next.
Is backd for you?Where backd fits and where it doesn’t, how it compares with other backends, and the list of what it does not do (yet).
BuildEverything you need to build an application on backd: configuration, the HTTP API, authentication, organizations, functions, files, push and clients.
TutorialBuild Shelf, a team asset library, one feature per chapter — every chapter ends in a working app.
OperateRunning backd: MongoDB, deployment, providers, administration, monitoring, backup and hardening.
ContributeWorking on backd itself: workflow, repository layout, tests, architecture and the API contract.
TroubleshootingThe messages you are most likely to meet when starting out with backd, what they mean, and what to do.