Instant branching
Your database in seconds, without copying data. Fully isolated Postgres branches with schema and production-like data, instant and cheap to run.
One isolated database per workflow
Give every developer, pull request, test run, or agent its own database, no shared staging, no interference between environments.
Real data, not mocks
Work with production-like data from the start, not empty schemas or fragile test datasets.
Instant creation
Spin up a full Postgres database in seconds, regardless of size, no waiting for copies or restores.
Scale to zero
Branches automatically stop when idle, so you don't pay for compute you're not using.
Instant wake-up
Wake instantly on first connection, so your database is always ready.
Copy-on-write storage
Branches don't copy the data. They share it with the parent and only store changes.
How teams use branching
Pull requests
Create a database branch for every PR. Test code against real data before merging.
Preview environments
Give every deployment its own database with real data, no shared staging, no conflicts.
CI & testing
Start every test run from a clean database. No drift, no flaky tests.
Debugging production issues
Reproduce bugs on a production-like branch without touching live data.
Agents & automation
Give every agent its own database. Run in parallel, without multiplying costs.
Shared staging doesn't work at agent scale
Agents can't share a staging database. Each needs an isolated Postgres branch with real data — so you can spin up thousands of databases without multiplying costs.
The challenges you're facing
Shared staging causes conflicts and unreliable tests.
Copies take too long and drift from production.
Small datasets hide real-world issues.
Production is too risky to test against.
How Xata solves them
One database per workflow no conflicts, no shared state.
Instant branches create databases in seconds.
Real data test against production-like datasets.
Safe isolation experiment without touching production.
Adopt branching without moving production
No migration. No disruption to production.
Connect to your production database
Keep your production database where it is, whether it is AWS RDS, Aurora, GCP Cloud SQL, Azure Database, or even self-hosted.
Clone the production database
Start with a production snapshot and keep it up to date—either via nightly refreshes or continuous sync.
Anonymize PII or other sensitive data
Mask sensitive data using configurable transformers that maintain referential integrity.
Learn moreInstant dev branches
From the production clone, instantly create copy-on-write branches for each pull request to accelerate development, testing, and collaboration.
Deploy to production without downtime
Apply database changes confidently with pgroll, serving old and new schema versions in parallel for smooth, lock-free migrations.
Learn morePostgres for agent scale.
Use your existing Postgres. Run it better with Xata.