Case Study How Laurel brings production-ready validation to AI-native development while cutting change failure rate by 82%

Preview Environments

Preview environments on Kubernetes, one per pull request.

Give every PR its own preview environment on the Kubernetes cluster you already run. Signadot deploys only the services a change touches and shares the real dependencies around them, so previews spin up in seconds and scale with the PR volume your developers and coding agents create.

  • Runs on the cluster you already operate
  • A preview URL for every PR, no infra duplication

Trusted by engineering teams worldwide

Previewing a change shouldn't mean cloning your whole stack.

On Kubernetes, the two usual options both break down: a full environment per PR is too slow and expensive, and one shared staging environment turns into a queue. Coding agents only widen the gap, pushing more PRs than either model can serve.

Duplicating doesn't scale

Duplicating every service for every PR is slow to provision and expensive to run. Cost climbs with each service and each open PR, so teams ration who gets an environment.

Shared staging is a bottleneck

When everyone shares one environment, changes queue for their turn, and one bad deploy breaks it for the whole team. Reviewers wait, and integration bugs hide behind each other.

Coding agents multiply PRs

Agents open changes faster than people ever did. Heavyweight environments can't keep pace, so agent-written code merges with little validation and bugs surface downstream.

The Signadot approach

Fork what changed, share everything else.

A Signadot preview forks only the services a change touches and routes everything else to the shared, real dependencies around them. Each PR runs against a complete, production-like system, without copying your stack.

  1. Deploy only the delta

    The preview forks the one or two services the PR modifies. There is nothing to clone and no full stack to rebuild, so it is ready in seconds.

  2. Route by request header

    A routing key travels in the request header across every service call. Keyed requests reach the change; everything else uses the shared cluster.

  3. Test against real dependencies

    The fork plus the shared services present as one complete, production-like stack. For stateful needs, a Resource Plugin can give a PR its own isolated database.

  4. Scale to thousands

    Because every preview reuses the same shared dependencies, thousands run side by side on the cluster you already operate, each torn down when its PR closes.

End-to-end previews

Preview from your real web and mobile apps.

A preview is a real, routable environment, not just a backend URL. Point your web frontend or mobile app at it by carrying the preview's routing key, and walk the whole flow end to end against the change while every other dependency is served by the shared cluster.

The preview workflow

From pull request to preview URL, automatically.

Every PR gets a preview without a ticket, a queue, or a human in the loop. Your CI applies a sandbox from a template in the repo, the Signadot GitHub App posts the preview URL as a comment, and the environment tears down the moment the PR closes.

  • No manual steps, the same flow for developers and agents
  • Preview URL on the PR, with the routing key to reach it
  • Auto-teardown on merge or close, with a TTL backstop
Set up PR previews in the docs

Thousands of previews.
On the cluster you already run.

Signadot virtualizes preview environments onto your existing Kubernetes cluster. Each one deploys only the services a PR changed and routes everything else to shared real dependencies. Previews spin up in parallel, in seconds, and scale with the PR volume your developers and coding agents create.

A preview for every PR Per-PR and per-task previews run side by side, with no queue, no scheduling, and no contention for a shared environment.

Seconds to spin up Only the changed services deploy. Everything else routes to shared real dependencies, so there is nothing to clone and no full stack to rebuild.

Production-like fidelity Services, message queues, databases, and caches, every layer a change touches, exercised exactly as it runs in production.

Bitso logo

83% lower change failure rate

We basically stopped creating full preview environments and replaced our custom solution with Signadot. Instead of isolating the full environment, the strategy using routing keys is much lighter, and we are able to provide an isolated environment, even with isolated databases, per PR quite fast.
Marcus Tavares, Staff Software Engineer at Bitso Marcus TavaresStaff Software Engineer

A preview environment per PR, at a fraction of the cost.

Bitso replaced its homegrown full-environment-per-PR system with Signadot, giving 250+ engineers and 200+ microservices a lighter, faster preview for every change.

What you get

Previews that fit how your team already ships.

No hosted platform to migrate to and no SDK to adopt. Previews run on your cluster, with your tools, for both the people and the agents opening PRs.

Plug into the CI you already run.

Pre-built integrations for every major CI and GitOps tool. Add a few lines to your pipeline and your team has per-PR preview environments by the end of the day. Routing works through the built-in DevMesh or your existing service mesh.

Browse all CI and GitOps integrations

Preview Environments FAQ

What is a preview environment?

A preview environment is an on-demand, isolated deployment created automatically for a pull request, so the change can be reviewed and tested before it merges. With Signadot, each preview deploys only the services the PR changed and routes everything else to the real services and dependencies already running on your cluster. It spins up in seconds and tears down when the PR closes.

How does Signadot create a preview environment for each pull request?

When a PR opens, your CI applies a sandbox from a template stored in the repo. Signadot forks only the changed workload onto your existing Kubernetes cluster and assigns it a routing key. Requests carrying that key, in a standard request header propagated across service calls, reach the changed service; every other request falls through to the single shared environment with real dependencies. Nothing else is copied, so the preview is ready almost immediately.

How is this different from spinning up a full environment or namespace per PR?

Cloning the whole stack into a namespace or cluster per PR is faithful but slow and expensive, and the cost grows with every service and every open PR. Signadot deploys only the diff and shares the rest of the cluster, so each preview stays lightweight, starts in seconds, and thousands run side by side on the cluster you already operate.

How do preview environments fit into CI/CD and GitHub?

Add a few lines to your pipeline to apply a sandbox on PR open. The Signadot GitHub App posts the preview URLs and routing key as a PR comment, and deletes the environment automatically when the PR merges or closes. Pre-built integrations exist for GitHub Actions, GitLab CI, Jenkins, Bitbucket Pipelines, CircleCI, and ArgoCD, with a TTL backstop so nothing is left running.

Can preview environments keep up with the PR volume coding agents create?

Yes. Coding agents push far more PRs than a queue of full-stack environments can serve. Because each Signadot preview is just a diff on a shared cluster rather than a full copy, previews scale with PR volume without scaling infrastructure. Each agent task or PR gets its own preview, created through the Signadot MCP server or CLI, so developers and agents share the same fast, lightweight workflow.

Can I run my existing tests against a preview environment?

Yes. There is no SDK to adopt and no framework to migrate to. Point your existing Playwright, Cypress, or k6 suites at a preview using Signadot Jobs, or open the preview URL directly. Tests run against the changed services and the real dependencies on your cluster, not mocks or stubs.

New to the model? Read our complete guide to preview environments in Kubernetes.