doltgres

a PostgreSQL-wire database you can branch, commit, diff, merge, and time-travel like Git — “Git for your data.” Briven is Doltgres-first: it powers both the platform control database and every project database (not only “the data plane”).

heads up — DoltGres is Beta. It is still pre-1.0 (1.0 is targeted around October 2026), runs roughly 5.2× slower than stock PostgreSQL today, and some PostgreSQL features are not implemented yet. It is solid enough to build on, but read beta + limitations before you lean on it for anything load-bearing.

what it is, in plain words

Think of a normal database as a single live document that only ever shows you the latest version. DoltGres is the same database, but with a full history attached — like Git for code, except the thing under version control is your data. You can take a snapshot (a commit), spin off a separate copy to experiment on (a branch), compare two versions side by side (a diff), fold changes back together (a merge), and ask “what did this table look like last Tuesday?” (time travel). Underneath, it is a real PostgreSQL database — your app talks to it the same way it talks to any Postgres.

Dolt is not DoltGres

This is the single most common point of confusion, so it is worth being crisp. There are two products from the same team, built on the same versioned storage engine, but they speak different languages:

DoltDoltGres
dialectMySQLPostgreSQL
default port33065432
clientmysqlpsql
how you commitCALL DOLT_COMMIT(...)SELECT dolt_commit(...)

The headline difference: in DoltGres, every version-control operation is a function you call with SELECT, never CALL — for example SELECT dolt_commit('-am', 'my message');. PostgreSQL allows side effects inside a SELECT (the same way nextval() works), so DoltGres leans on that. Any DoltGres example you write or copy should use the SELECT dolt_* form on port 5432 with psql. If you see a CALL or port 3306, that is MySQL Dolt, not DoltGres.

the superpowers

what to read next