briven

flndrn 8d1789ff0a fix(studio): split getTableColumns catalog query to dodge DoltGres 0.57.2 join panic 3 settimane fa
.claude 996ba4a58a chore: keep markdown docs local-only (README.md stays public) 1 mese fa
.github ed5714353d feat(auth): SCIM 2.0 provisioning + re-enable auto-deploy 1 mese fa
apps 8d1789ff0a fix(studio): split getTableColumns catalog query to dodge DoltGres 0.57.2 join panic 3 settimane fa
assets ab84003a38 chore: initial commit 3 mesi fa
docs 45bd7fbf69 docs(doltgres): record live reboot-safety proof (2026-08-02) + autoDeploy-off lock 3 settimane fa
examples 8d737f7120 docs: Doltgres-first handoff, MCP guides, and public docs accuracy 1 mese fa
infra 3797e734da fix(doltgres): upgrade 0.56.6→0.57.2 (lock-under-load fix) + rework backups to gentle host job 3 settimane fa
packages 42ce2236b7 fix(auth): gold-path session/me, Konnos logo, SuperTokens test evidence 4 settimane fa
patches c5aa765f6b feat(studio): fork supabase studio + rebrand to briven (phases 0-5.1) 3 mesi fa
scripts 3797e734da fix(doltgres): upgrade 0.56.6→0.57.2 (lock-under-load fix) + rework backups to gentle host job 3 settimane fa
.commitlintrc.json ab84003a38 chore: initial commit 3 mesi fa
.dockerignore eddeb46ea8 infra: keep apps/studio/package.json in build context + pin compose project name 2 mesi fa
.gitignore 33e39250d9 chore: allow docs/knowledge-base.md in gitignore exceptions 1 mese fa
.npmrc 38eab52446 feat(studio): fork supabase studio + rebrand to briven (phases 0-5.1) 3 mesi fa
.nvmrc ab84003a38 chore: initial commit 3 mesi fa
.prettierignore ab84003a38 chore: initial commit 3 mesi fa
.prettierrc ab84003a38 chore: initial commit 3 mesi fa
AGENTS.md c7126e31af docs: hard rule — open knowledge-base.md before any Auth change 1 mese fa
CLAUDE.md c7126e31af docs: hard rule — open knowledge-base.md before any Auth change 1 mese fa
README.md 38e95988c7 docs: professional product README; remove Forgejo CI folder 1 mese fa
eslint.config.mjs 32fac5f400 feat(quality): real eslint config + briven.cloud→briven.tech sweep + mittera tests 3 mesi fa
package.json 64dae99fd4 feat(quality): real eslint config + briven.cloud→briven.tech sweep + mittera tests 3 mesi fa
pnpm-lock.yaml 2bac55599d fix(web): depend on @briven/auth for first-party /api/auth proxy 1 mese fa
pnpm-workspace.yaml c5aa765f6b feat(studio): fork supabase studio + rebrand to briven (phases 0-5.1) 3 mesi fa
tsconfig.base.json ab84003a38 chore: initial commit 3 mesi fa
turbo.json ee7a62e3ef ci: fix remaining CI failures — typecheck, lint, pre-existing issues 1 mese fa

README.md

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 use setup --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.