Compare
flndrnchore: point push script at code.konnos.org/flndrn/Brivenc4b8c093d ago
NameLast commit date
.claude3d ago
.github1w ago
apps3d ago
assets3mo ago
examples1w ago
infra3d ago
packages3d ago
patches2mo ago
scripts3d ago
.commitlintrc.json3mo ago
.dockerignore4w ago
.gitignore3d ago
.npmrc2mo ago
.nvmrc3mo ago
.prettierignore3mo ago
.prettierrc3mo ago
eslint.config.mjs3mo ago
package.json3mo ago
pnpm-lock.yaml5d ago
pnpm-workspace.yaml2mo ago
README.md3d ago
tsconfig.base.json3mo ago
turbo.json2w ago
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.

SurfaceWhat it is
briven.techHosted product (dashboard, projects, billing)
docs.briven.techDocumentation
api.briven.techControl plane API
briven-coreOpen-source engine (self-hostable, AGPL-3.0)
npx @briven/cliDeveloper 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.

CapabilityDescription
Email + passwordClassic sign-up / sign-in
Email OTP / magic linkPasswordless email flows
SMS OTPOptional; Twilio secrets per project
Social loginGoogle, GitHub, Konnos, and more when secrets are configured
Passkeys & MFA (TOTP)Modern second factor
Enterprise SSOSAML / OIDC into your app (company IdP)
Sessions & rolesList / revoke sessions; roles & permissions
Security diaryAudit trail of sign-ins and config changes
M2MMachine clients: client id + secret → short-lived tokens
OIDC IdPBriven 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).

ItemDetail
Endpointhttps://s3.briven.tech
BucketOne primary bucket per project (e.g. proj-…)
KeysScoped access keys from the dashboard (secret shown once)
Public mediahttps://media.briven.tech/media/<projectId>/<fileId> when configured
Soft deleteRestore 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

AreaRole
FunctionsServerless-style compute for your project (Deno isolate runtime on the managed product)
RealtimeReactive / websocket paths for live updates
SchedulesTimed jobs
StudioEmbedded data browser in the product
MCPAgent-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 styleUsed for
brk_…Project data plane / API (server)
pk_briven_auth_…Auth SDK / app auth config
brvn… / storage access keysOne project’s S3 bucket
M2M / OIDC client secretsMachine 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


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.