Preview environments for every branch of your code

$ git push origin feat/tax-round
→ pr-184.env.veilstreamapp.com   Ready

Push a branch. Get a live URL running your Docker Compose — with a sanitized database and data privacy safeguards for AI agents.

First $20/month free. No credit card.

That's easy, but what about …

Per-branch environments are a simple idea. These are the parts that make them a hard problem. We handle all of them.

the database?

Shared staging is how most teams fake this. Migrations collide. Data gets polluted. Each VeilStream environment gets its own copy-on-write instance from a sanitized snapshot of your Postgres — not a live slice of production, and not a second database you have to migrate onto. You keep the Postgres you already run.

production data?

You cannot copy production as-is. Applicant records, customer PII, and other personal information have to be masked before they land in a preview. Define column rules once — mask, hide, replace, filter. Snapshots are taken as a chosen user, so sanitization is baked into the seed. The same data protection rules apply to developers, applications, support, and coding agents.

sign-in?

Google and Apple only accept pre-registered redirect URLs. A new hostname per branch breaks that. Register VeilStream’s auth router once. It brokers the callback back to this environment. Same login code as production; you flip one environment variable.

the rest of the stack?

A URL for a frontend is not an environment. We build and run the services in your existing Docker Compose file — web, API, workers, Redis, whatever is there — as isolated containers with a unique URL. When the environment is destroyed, they go away. You do not rewrite the Compose file.

secrets?

Each environment needs its own URLs, DSNs, and callbacks. Set env vars in the console. Use templates for values that change per environment — the preview URL, a unique snapshot-fork connection string. Console values win over the Compose file.

someone writing to it?

A sanitized snapshot is fine until someone needs to mutate it. Snapshot forks are writable scratch copies of that seed. Agents and tools can change data without touching production or the golden snapshot. When the fork is done, delete it.

AI agents?

A checkout is not a preview. Cursor and Claude get the live URL, logs, and Postgres credentials over MCP. Access expires after 60 minutes. You can revoke it. Queries can be recorded. The same data rules apply as for people — so an agent pulling applicant or customer data from your database sees the masked snapshot, not live production.

pull requests?

Connect the repository. We create an environment on pull-request open or branch push, update it on new commits, and delete it when the PR closes.

leftover environments?

PR environments delete when the pull request closes. Branch environments expire on a wall-clock or idle timeout. Dormant environments stop spending. Compute billing stops when the environment is destroyed. First $20/month is free; no credit card to start.

Those are the reasons per-branch environments usually stay a wiki page. We run them.

Works with

Built in British Columbia by Steve Jones and John Oram

From a customer

With VeilStream, we nearly doubled our sprint velocity. From 10 points to 19, and we sleep better at night.

Erik Dahl CTO, Parrot (YC F25)

From branch to usable environment

Git push to a URL and a snapshot database.

  1. 1 Push code

    VeilStream detects the branch or pull request and reads your existing Docker Compose file.

  2. 2 We build and host it

    Your Compose services are built and run as temporary containers, isolated, with a unique URL. When the environment is destroyed, they go away.

  3. 3 With a snapshot database

    We host a preview database from a sanitized snapshot — refresh it nightly if you want. Copy-on-write makes each environment look like its own instance without copying the full dataset.

Git branch Build containers Live URL Snapshot DB Human / AI agent

How this is different

Vercel and Render give you a URL. Neon gives you a database branch. Codespaces gives you a cloud IDE. Per-branch environments need all of it — a URL, the stack, a sanitized database, and data protection for people and agents.

Capability comparison of VeilStream, Vercel, Render, Neon branching, and GitHub Codespaces
Capability VeilStream Vercel Render Neon branching Codespaces
Live preview URL from git Yes Yes Yes No Cloud IDE, not a shareable preview
Runs Docker Compose Yes — multi-service Frontend / serverless Dockerfiles No In the workspace
Preview database from your data Sanitized snapshot Optional add-on Copy of a Render database Copy-on-write branch You wire it
Sanitization / column rules PII masking No No No No
Data privacy safeguards for AI agents MCP, expires, recorded No No No No
You keep production Postgres Yes Yes Yes Neon is the database Yes

Go deeper

FAQ

What data privacy safeguards do AI agents get when they pull applicant or customer data?

Cursor and Claude receive temporary Postgres credentials over MCP, not a standing production login. Access expires after 60 minutes and can be revoked. Queries can be recorded. Column rules — mask, hide, replace, filter — apply to agents the same as to people, so PII in applicant, customer, or other records is already sanitized in the snapshot they query. Detail: MCP server.

Is VeilStream CCPA records management software?

No. VeilStream is not a DSAR, consent, or records-of-processing product. It is data protection for preview environments: column-level masking so personal information from production — including records you would treat as CCPA personal information — is sanitized before developers or AI agents use it. If you need a records-management suite, that is a different tool. If the gap is non-production copies of production data, this is that control. See data rules.

Is VeilStream data protection software?

It is data protection for per-branch environments: sanitized Postgres snapshots, column rules for PII, and scoped credentials for people and AI agents. Generic data-protection suites cover backups, DLP, and compliance workflows. Use VeilStream with those tools, not instead of them.

How does pricing work?

Usage-based. The first $20/month is free, with no credit card required. You pay for compute while preview environments run, plus metered database usage. When an environment is destroyed, compute billing stops. See pricing.

How is this different from Vercel, Render, or Neon?

Those tools each cover part of the problem — a preview URL, a Docker host, or a database branch. VeilStream is the whole per-branch environment: live URL, sanitized snapshot database, and the same access rules for people and agents. See the comparison.

What is an environment versus a deployment?

An environment is the live preview — the URL, services, and lifecycle. A deployment is one build of that environment, with logs and status. You mostly care whether the environment is ready. Detail lives in the docs.

Preview environments for every branch of your code

Connect your repository and Docker Compose. Your next pull request gets a live URL, a sanitized database, and data privacy safeguards for people and agents.

First $20/month free. No credit card.