Preview every pull request.

Your app runs in the CI runner you already have. Kittengrid tunnels to it, gives each PR a live URL, and cleans up when the PR closes. No cluster to manage.

Plugs into your stack GitHub GitLab
Preview environments

A live URL for every pull request.

Share a link instead of a branch name. It works as long as the PR is open and disappears when it closes.

Review by clicking

Every pull request gets its own link. Send it to reviewers, QA or your PM instead of asking them to check out the branch.

Kittengrid commented on #482 · feat/checkout
Preview ready at pr-482.kttngrd.co
github-actions · commit a1f9c2e

Private by default

Preview URLs need a Kittengrid login. Your unreleased work isn't on the open internet.

pr-482.kttngrd.co Sign in to view

Sleeps until someone clicks

Previews start asleep and use no CI minutes. Open the URL and the runner job starts. Merge or close the PR and the URL is gone.

  1. PR opened 10:02
  2. URL ready, preview asleep 10:03
  3. Reviewer opens it, runner wakes 11:15
  4. pr-482.kttngrd.co is live 11:16
  5. Merged, URL removed 16:40
The grid

Every environment, log and shell, tied to its PR.

One dashboard for every open pull request: what's awake, what's asleep, what broke, and where to look.

See it all at once

Which previews are awake, which are sleeping, and which PRs need attention.

  • live 1
  • waking 1
  • sleeping 5
  • failed 1

Logs next to the PR

Read your app's output without digging through the CI interface.

10:04:11 tunnel ready → pr-482.kttngrd.co
10:04:12 GET / 200 38ms
10:04:19 GET /checkout 200 112ms
10:04:20 POST /api/cart 422 stock check failed
10:04:26 GET /checkout 200 97ms

One click to a shell

Something failed? Open a terminal on that PR's runner straight from the row.

feat/jpy-billing failed
Open terminal

Your runner does the work. We handle the route.

Preview platforms ask you to run a second copy of your infrastructure. Kittengrid reuses the one you have.

Nothing new to operate

No Kubernetes cluster and no second cloud bill. Previews run on CI compute you already pay for, and only once someone opens them.

Your code stays put

Builds and data stay on your runners. Kittengrid carries traffic through the tunnel, nothing more.

Not just the frontend

If it runs in your pipeline, it gets a URL. APIs, databases and workers included.

GitHub and GitLab

The same workflow on GitHub Actions and GitLab pipelines.

Review the app, not the diff.

Create an account or sign in to start giving your pull requests live URLs.