Adjoint — by stagDB

A production-scale Postgres sandbox, for every developer.

Adjoint gives each developer an isolated, disposable Postgres built from a snapshot of your real production data — 15–30 seconds from a warm pool, about two minutes on demand, in your own AWS account. Break it, reset it, try again — no tickets, no waiting, no stepping on each other's data. And it's free.

$ adj clone prod-pg16
 claimed from warm pool          ready in 16s
$ adj creds i-4f2a
postgres://daniel:••••••@i-4f2a.ns-daniel.svc:5432/app
$ psql -c "select count(*) from orders"
  50,000,000   -- real volumes, real distributions, real edge cases
$ adj reset i-4f2a    # broke it? re-clone and move on
15–30 sto a ready sandbox from a warm pool; about 2 min on demand
1.12×storage for 10 sandboxes in a 500 GB workload where each developer changes ~6 GB — how we measure
0 bytesof your data on our servers — it never leaves your AWS account
< 60 minto a working cluster, one command — once your AWS prerequisites are in place
The problem

Seed data lies. Staging is a queue. Dumps go stale.

To ship correct software, developers need data that behaves like production — real volumes, real distributions, real edge cases. But production data is large, sensitive, and slow to copy, so teams settle for one of four bad options:

// option 1

Tiny seed data

The query that's fast on 500 rows times out on 50 million. Bugs slip to prod.

// option 2

One shared staging DB

Contention and pollution. One destructive migration breaks everyone.

// option 3

Manual prod dumps

Hours per copy, perpetually stale, and PII sprayed across laptops.

// option 4

Per-dev cloud copies

Cost-prohibitive at multi-TB × headcount. Nobody ever refreshes them.

The root cause: a full copy of a big database costs real time and real money — multiplied by every developer who needs one. Adjoint removes the multiplication: every sandbox shares the unchanged data with its golden snapshot, so you pay for the base data once — plus only what each developer actually changes.

What changes

Shared database state stops being the bottleneck.

Staging collisions end

Nobody queues for the shared database or gets broken by someone else's migration — every developer works in their own sandbox.

Destructive changes, no coordination

Run the risky migration, drop the table, rewrite the index — then reset. No Slack thread asking who else is on staging.

Data-dependent bugs reproduce

The bug that only happens on row 48,201,377 happens in your sandbox too — because it's built from the real data, not seed rows.

Tests run at real scale

Query plans, timeouts, and edge cases behave like production because the volumes and distributions are production's.

Migrations rehearsed, not gambled

Rehearse the exact schema change against a fresh sandbox as many times as it takes — before it ever touches production.

Onboarding in minutes

A new engineer's first realistic database is one adj clone away — not a week of asking where to find a usable dump.

How it works

Admins curate once. Developers self-serve forever.

Provision your cluster

adj cluster provision --developers 20 sets up everything Adjoint needs in your own AWS account — sized for your team, checked against your permissions before it touches anything. One command, under an hour once the AWS prerequisites are in place.

Curate golden snapshots

adj import run pulls from your real source (e.g. RDS Postgres) into a versioned, immutable golden snapshot — the curated base your whole team clones from. Re-import anytime; versions are pinnable.

Developers clone

adj clone hands each developer a full-size, writable copy of the golden snapshot in a private sandbox that's theirs alone — then reset when they break it, refresh to newer data, or destroy when done. No DBA, no ticket.

Your data never leaves your walls.

Adjoint's servers never see your rows — we store only the bookkeeping (who's in your org, what snapshots exist, what happened when). The data itself lives exclusively in your AWS account. Database credentials are brokered live and never stored in Adjoint's control plane, every privileged action lands in a tamper-evident audit trail, and each developer's sandbox is walled off from everyone else's — enforced by default-deny network policy and admission control. Full details in the security model.

Features

A complete platform, not an engine to assemble.

CLI-first, portal included

The adj CLI is the product — scriptable end to end. A companion web portal covers the same hero loop for clicking around.

Versioned golden snapshots

Immutable, admin-curated base datasets with lineage. Pin a version for reproducible test runs; share across the org.

Pre-warmed clone pools

Pools keep ready clones on standby so a developer claims one in seconds instead of waiting on storage provisioning.

Your AWS account

Runs on standard AWS building blocks, provisioned by one command. Adjoint never holds your cloud credentials — you stay in control.

Isolation, enforced

Every developer gets a private sandbox that can't see anyone else's — default-deny network policy between namespaces, enforced at the CNI.

Guardrails built in

Per-user and per-org quotas, TTLs with automatic reaping, invite-only membership with role-based access, and a verifiable audit trail.

Pricing

Free. Not a trial — free forever.

Adjoint

  • Everything on this page — the full product, every developer included
  • No per-seat fees, no clone limits, no time limit
  • CLI + web portal
  • Imports from your real sources (e.g. RDS Postgres)
  • Isolation, quotas, TTLs, and the audit trail — all included
  • You pay AWS directly for the infrastructure you run — we never mark it up
$0 forever
per org, per cluster

Not open source — just free.

Get started

Questions, pilots, design-partner interest — [email protected]

Why free? Adjoint's control plane stores only metadata — no rows, no storage, no compute — so it costs us very little to run, and the infrastructure bill is already yours because it runs in your AWS account. The business is the paid tier: compliance features like PII scrubbing, SSO and governance, private control planes, and enterprise support. The core product stays free.

// coming soon — paid tier

Automatic PII scrubbing, with full referential integrity

Hand developers production-shaped data with the sensitive parts scrubbed — names, emails, and secrets replaced automatically, while every relationship between tables stays intact so joins, tests, and edge cases still behave like the real thing. Want early access? Tell us.