# A serverless, Postgres-compatible database with no cold starts.

> A serverless, Postgres-compatible database with no cold starts, for teams building AI agents and the apps they serve. Every branch is instant, history is queryable, and branches merge back with a reviewable diff.

Source: https://stolondb.com/ · Page title: Stolon — serverless, Postgres-compatible database for AI agents, with branches and history

For teams building AI agents and the apps they serve. Branches are instant, merge back as a diff you review, and the past is one query away.

[Start free](https://stolondb.com/signup) [Read the docs](https://stolondb.com/docs/)

Free while in preview. Works with psql, psycopg, node-postgres, SQLAlchemy, Alembic and any MCP client.

## Everything an agent does to your data happens on a branch you can review and undo.

Your app and your agents share one versioned database.

### A branch for every agent and every pull request

The whole database, instantly, under a name you connect to. Nothing written there shows up on `main`.

```
acme.main=> CREATE DATABASE "agent-triage-4127";
CREATE DATABASE
```

### Undo, and read any moment back

Read any table as it was at a time you name, or put a branch back to before an agent ran.

```
acme.main=> SELECT * FROM tickets
acme.main->   FOR SYSTEM_TIME AS OF '2026-10-01 09:00:00+00';
```

### Review and merge what agents changed

Every branch is a pull request of the rows and cells it changed. A conflict names the table, row and column, and nothing lands until you decide. [Connect GitHub](https://stolondb.com/guides/github/) and every pull request gets its own branch.

```
conflict | customers[1].seats, both sides
```

### Postgres drivers for your app, MCP for your agents

Your stack connects unchanged, and the database name picks the branch. Agents get a versioned key-value store over MCP.

```
postgresql://app:…@db.stolondb.com/acme.agent-triage-4127
```

![The console's pull request for the branch migrate-seat-billing into main: one conflict on customers row 1, seats, where main says 16 and the branch says 14; two rows modified, including Lumen Robotics' plan changed from free to team; and one new column, billed_seats.](https://stolondb.com/assets/shot-changes-light.webp)

```
$ psql "postgresql://app:…@db.stolondb.com/acme.main"
acme.main=> CREATE DATABASE "migrate-seat-billing";
CREATE DATABASE
acme.main=> MERGE DATABASE "migrate-seat-billing"
acme.main->   INTO main DRY RUN;
```

## Why it is called stolon

A stolon is a plant's runner: each node on it can root into a plant of its own. `main` is the runner and a branch is a node that has rooted. A runner never takes a plant back. Stolon can, and that is a merge.

## How teams use it

Three workflows that need a copy of real data.

### Agents exploring in parallel

A branch per run. Merge the one you keep, drop the rest.

[Review an agent's changes](https://stolondb.com/guides/review-agent-changes/)

### A preview database per pull request

CI makes a branch per pull request and the preview connects to it by name.

[Branch per pull request](https://stolondb.com/guides/branch-per-pull-request/)

### Migrations you rehearse first

Migrate a branch of production, read the diff, then merge it or throw it away.

[Rehearse a migration](https://stolondb.com/start/)

![The console's overview: main as a line running left to right, with three branches leaving it (migrate-seat-billing and preview-pr-218 ready to review, agent-triage-4127 in progress) and a list of pull requests ready to review.](https://stolondb.com/assets/shot-overview-light.webp)

## How it compares

From each vendor's own pages.

|   | Stolon | Neon | Supabase | Dolt |
| --- | --- | --- | --- | --- |
| A branch is | the whole database, made without copying it | a copy-on-write clone with its own compute | a separate environment that starts without data by default | a branch of a versioned database |
| Merging data back | yes, with conflicts named by row and column | not described; a branch is reset or restored | applies migrations; no data merge described | yes, in SQL |
| When idle | stays awake; no cold start | compute scales to zero after 5 minutes on Free and Launch | a Free project pauses after a week | each hosted database is a dedicated instance |
| Reading the past | any table at any moment in the window, in SQL; compare two moments | restore within a history window | daily backups; point-in-time recovery as an add-on | diffs between commits through system tables |

*Vendor facts as of 26 September 2026; hosted Dolt as of 30 September 2026. [Read the full comparisons](https://stolondb.com/compare/).*

## Pay for what your agents do.

Metered on throughput and storage held. Idle time isn't billed.

### Free

To try it

- Databases **1**
- Live branches **up to 10**
- History **24 hours**

### Team

App teams and early agent work

- Branches **no per-branch fee**
- History **7 days**
- Review and merge **policies, approvals**

### Agents

Agent fleets in production

- Branches **no per-branch fee**
- History **30 days**
- Provenance **checks, watchpoints**

Enterprise on request; provisioned production databases coming

Free during the preview; prices published at launch. [Compare the plans](https://stolondb.com/pricing/)

## Give every agent its own database.

Name a database and connect with the driver you already use.

[Start free](https://stolondb.com/signup) [Read the docs](https://stolondb.com/docs/)
