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
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:
The query that's fast on 500 rows times out on 50 million. Bugs slip to prod.
Contention and pollution. One destructive migration breaks everyone.
Hours per copy, perpetually stale, and PII sprayed across laptops.
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.
Nobody queues for the shared database or gets broken by someone else's migration — every developer works in their own sandbox.
Run the risky migration, drop the table, rewrite the index — then
reset. No Slack thread asking who else is on staging.
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.
Query plans, timeouts, and edge cases behave like production because the volumes and distributions are production's.
Rehearse the exact schema change against a fresh sandbox as many times as it takes — before it ever touches production.
A new engineer's first realistic database is one adj clone
away — not a week of asking where to find a usable dump.
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.
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.
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.
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.
The adj CLI is the product — scriptable end to end. A companion
web portal covers the same hero loop for clicking around.
Immutable, admin-curated base datasets with lineage. Pin a version for reproducible test runs; share across the org.
Pools keep ready clones on standby so a developer claims one in seconds instead of waiting on storage provisioning.
Runs on standard AWS building blocks, provisioned by one command. Adjoint never holds your cloud credentials — you stay in control.
Every developer gets a private sandbox that can't see anyone else's — default-deny network policy between namespaces, enforced at the CNI.
Per-user and per-org quotas, TTLs with automatic reaping, invite-only membership with role-based access, and a verifiable audit trail.
Not open source — just free.
Get startedQuestions, 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.
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.