Briven
The version-controlled backend you own.
briven.tech is a managed backend platform for app builders: databases you can branch like Git, authentication, file storage, serverless functions, and realtime — without running your own servers if you do not want to.
| Surface | What it is |
|---|---|
| briven.tech | Hosted product (dashboard, projects, billing) |
| docs.briven.tech | Documentation |
| api.briven.tech | Control plane API |
| briven-core | Open-source engine (self-hostable, AGPL-3.0) |
npx @briven/cli | Developer CLI (MIT) |
What you get (product map)
1. Projects & databases (Doltgres)
Every project on Briven is an isolated app environment.
- SQL database with a normal Postgres wire protocol (tools like
psql, Prisma, Drizzle, and many ORMs work). - Under the hood production uses Doltgres — SQL plus Git-style history: branches, commits, diffs, and time-travel.
- Stock Postgres is not the product database engine for Briven.tech.
- Control plane metadata and each project’s data plane live on Doltgres (database-per-project model).
In the dashboard: open a project → database / studio to browse tables and run SQL.
For apps: use project connection settings and API keys (brk_…) for server-side data access. Never put admin secrets in a public frontend.
2. Briven Auth
Briven Auth (product name: briven-engine) signs end-users into your applications — not only the Briven.tech operator login.
| Capability | Description |
|---|---|
| Email + password | Classic sign-up / sign-in |
| Email OTP / magic link | Passwordless email flows |
| SMS OTP | Optional; Twilio secrets per project |
| Social login | Google, GitHub, Konnos, and more when secrets are configured |
| Passkeys & MFA (TOTP) | Modern second factor |
| Enterprise SSO | SAML / OIDC into your app (company IdP) |
| Sessions & roles | List / revoke sessions; roles & permissions |
| Security diary | Audit trail of sign-ins and config changes |
| M2M | Machine clients: client id + secret → short-lived tokens |
| OIDC IdP | Briven as a login office for other apps (authorize, token, userinfo, …) |
Dashboard: Auth → pick a project → Overview, Users, Sessions, Security, Keys, IdP, Providers, Branding, Enterprise.
For apps: prefer a first-party proxy (e.g. /api/auth/* on your domain → Briven FDI) so session cookies stay on your site.
Docs: docs.briven.tech/auth
Auth SDK keys look like pk_briven_auth_… — different from data-plane brk_… keys and storage keys.
3. File storage (S3 buckets)
Briven gives each project private object storage (S3-compatible, MinIO on the managed stack).
| Item | Detail |
|---|---|
| Endpoint | https://s3.briven.tech |
| Bucket | One primary bucket per project (e.g. proj-…) |
| Keys | Scoped access keys from the dashboard (secret shown once) |
| Public media | https://media.briven.tech/media/<projectId>/<fileId> when configured |
| Soft delete | Restore from dashboard / tools where enabled |
This is not your SQL database. Files live in S3; rows live in Doltgres.
This is not platform disaster-recovery backups (those are a separate ops concern).
Dashboard: project → Storage → create key → copy endpoint, bucket, access key, secret into server env only.
CLI: briven setup / briven connect can mint storage credentials into .env.local when possible.
Docs: docs.briven.tech/storage
4. Functions, realtime, and the rest
| Area | Role |
|---|---|
| Functions | Serverless-style compute for your project (Deno isolate runtime on the managed product) |
| Realtime | Reactive / websocket paths for live updates |
| Schedules | Timed jobs |
| Studio | Embedded data browser in the product |
| MCP | Agent-facing tools bound to a single project key |
Quick start (CLI)
mkdir my-app && cd my-app
npx @briven/cli setup --name my-app # new project + wire this folder
# or, existing project:
# npx @briven/cli connect p_…
briven deploy # or: briven dev
- New project:
briven setup/briven setup --name my-app - Existing project:
briven connect p_…(do not usesetup --project) - Docs: connect · quickstart
Keys (do not mix them)
| Key style | Used for |
|---|---|
brk_… | Project data plane / API (server) |
pk_briven_auth_… | Auth SDK / app auth config |
brvn… / storage access keys | One project’s S3 bucket |
| M2M / OIDC client secrets | Machine tokens / “Sign in with Briven” apps |
Never commit secrets. Rotate anything that has appeared in chat or a public log.
Monorepo layout
apps/
web/ briven.tech — marketing + dashboard (Next.js)
docs/ docs.briven.tech
api/ api.briven.tech — control plane (Hono on Bun)
runtime/ function runtime host
realtime/ websocket service
studio/ embedded data browser
packages/
cli/ @briven/cli
client-react/ @briven/react
client-vanilla/ @briven/client
schema/ schema DSL + migrations
shared/ shared types and utilities
infra/
dokploy/ compose templates for deploy / self-host
Local development
Requires Node 20 LTS, pnpm 9+, and Bun for apps/api.
pnpm install
pnpm dev
pnpm lint
pnpm typecheck
pnpm test
pnpm build
Tech stack (summary)
- TypeScript (strict)
- Next.js + Tailwind for web / docs / dashboard
- Hono on Bun for the control plane
- Doltgres for SQL + version history (Postgres wire)
- MinIO for S3-compatible project storage
- Redis where queues / rate limits need it
- Observability: Grafana, Loki, Prometheus (ops stack)
Brand & licence
- Product UI: dark theme; accent
#00e87a(auth surfaces may use the yellow Auth accent). - briven-core (engine): AGPL-3.0
- @briven/cli and @briven/client-*: MIT
Links
| Product | briven.tech |
| Docs | docs.briven.tech |
| Source (Konnos) | code.konnos.org/flndrn/briven |
Maintainers: git remotes
- Konnos:
https://code.konnos.org/flndrn/briven.git - Optional GitHub mirror may exist; prefer the remotes configured on this machine.
Pushing main does not by itself redeploy production unless a separate deploy workflow is run. Deploy via your Dokploy / ops path after review.