Customer Story How Bitso cut change failure rate 83% while scaling delivery with coding agents
Preview Environments

A preview environment for every pull request.

Give every PR its own preview 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
PR #142 checkout service PR #143 payments service PR #144 search service YOUR CLUSTER checkout · fork pr-142.preview ✓ payments · fork pr-143.preview ✓ search · fork pr-144.preview ✓ auth orders db queue cache
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.
PR #142 PR #143 Staging !

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.
PR PR PR

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.
PR #142 routing key service-2 checkout checkout PR FORK service-3 db tagged PR request shared cluster PR #142 routing key service-2 checkout checkout PR FORK service-3 db tagged PR request shared cluster
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.

Web app Mobile app API client routing key Preview runs your change 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.

“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
Marcus Tavares
Staff Software Engineer, Bitso

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.
Cross-PR previews with RouteGroups
Compose several PRs into a single preview with one URL to test how changes across services behave together, before any of them merge.
Bring your own tests
Point your existing Playwright, Cypress, or k6 suites at a preview with Signadot Jobs. No framework to migrate and no code changes required.
Real dependencies, not mocks
Changed services run against the real services, databases, and queues on your cluster, so you validate against production reality instead of an approximation.
Runs on your cluster
Previews use your existing Kubernetes cluster and ingress. There is no hosted platform and no new URLs to manage, and you reach a preview by request header or the browser extension.
Built for coding agents too
Each agent task or PR gets its own preview, created through the Signadot MCP server or CLI, so agents validate against real services and open PRs you can trust.
Automatic teardown
A preview lives while its PR is open and reaps on merge or close, with a global TTL backstop so nothing is left running. Zero orphaned resources.

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.
GitHub Actions
Drop in the Signadot Action. Per-PR previews, preview URLs posted as PR comments, auto-teardown on merge.
GitLab CI
Pipeline templates for per-MR previews that tear down on merge or close.
Jenkins
Shared library plus CLI calls. Existing pipelines pick up preview provisioning in a few lines.
Bitbucket Pipelines
Pipe definitions for per-PR previews. Works with self-hosted and cloud runners.
CircleCI
Orbs and CLI integration. The same per-PR lifecycle, wired into your existing workflows.
ArgoCD
Manage previews as Signadot Sandboxes alongside your GitOps workflow.
Browse all CI and GitOps integrations

A preview environment for every change, built for the scale of agentic development.

Give every developer and every coding agent a lightweight preview for every PR, scalable to thousands running in parallel on the cluster you already run.

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.