An environment for every branch. Push a branch. Get a live URL running that code.

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

We build your Docker Compose services and run them as temporary containers. Each preview gets a real database from a sanitized snapshot — copy-on-write, so it looks like its own instance — with data rules for you and for coding agents.

Fits your existing stack

Keep your repository, Compose file, and production Postgres. We host the preview containers and snapshot-backed databases.

From branch to usable environment

  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

Production-like data without production-like risk

Preview data is not a live proxy of production. We host a database from a sanitized snapshot of your Postgres. Define data rules once; they apply to developers, applications, support users, and AI agents.

Sanitized snapshot
VeilStream
Preview masked
Support limited
AI agent synthetic
public.customers Application
id email ssn plan

Built for developers and coding agents

The same preview URL and data rules work for a person in the browser and for an agent over MCP. Cursor and Claude get the running app, logs, and temporary database access — not a repo checkout alone.

MCP · PR 184 Ready
Claude / Cursor
      │
     MCP
      │
      ▼
PR environment
 ├─ web
 ├─ api
 ├─ worker
 └─ Postgres access
       ↓
   VeilStream rules

What you no longer have to build

Define the rules once. VeilStream applies them everywhere.

No duplicate production cluster

Production Postgres stays yours. Previews use a hosted database from a sanitized snapshot, not a second cluster you operate.

No manual database scrubbing

Generate sanitized snapshots using the same access rules you already defined.

No permanent agent credentials

Give AI agents temporary, scoped database access that expires automatically.

Why teams use VeilStream

Go deeper

FAQ

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.

Do you actually run my Docker Compose?

Yes. We build the services from your Compose file and host them as temporary containers. When the environment is destroyed, they go away.

Do you host a preview database, or only proxy production?

We host a preview database from a sanitized snapshot of your data. You can refresh that snapshot nightly. Copy-on-write gives each environment its own instance without duplicating the full dataset. Production Postgres stays yours.

Is VeilStream hosted Postgres?

Not as a replacement for production. Keep the Postgres you already run. Preview environments get a snapshot-backed database we host; they are not a live rewrite of production on the wire.

Do I have to change my Compose file?

No. VeilStream turns your existing Docker Compose file into isolated containers. Keep the repository and Compose file you already run.

Can an AI agent use the environment without seeing real values?

Yes. Give the agent temporary database access under the same data rules you use for people. Access expires automatically, and you can revoke it.

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.

Give every branch a real environment.

Connect your repository and Docker Compose file. Your next pull request gets temporary containers and a snapshot-backed database.