The product
Your tests already prove it works. Now show everyone.
Add one line to your Playwright tests. Midstream captures the full browser state at every checkpoint and turns each one into a live, shareable demo — automatically, on every PR.

The flow
From a test to a demo,
in three moves.
No CI plumbing, no preview deploys, no manual coordination. Midstream lives inside the workflow you already have.
import { test } from '@playwright/test';import { midstreamCheckpoint } from '@midstream/sdk/playwright'; test('sign up', async ({ page }) => {await page.goto('/signup');await page.fill(...);await midstreamCheckpoint(page, 'signup');});Step 01
Drop in a checkpoint
Add one function call to any Playwright test. The line is a no-op locally — it only activates in CI and in your demo sandbox.
3 checkpoints captured:
- signup-success
- checkout-cart
- dashboard-empty
Step 02
Open a PR
Your existing CI runs. Midstream captures the browser state at every checkpoint slug — DOM, cookies, storage, network — and posts a comment with demo links.

Step 03
Click. Land. Click around.
Reviewers click a link and land exactly where the test left off. The whole app is live — they can fork their own version and explore without affecting anyone else.
Seeded state
Land where the test
left off.
Other preview tools hand you a fresh app and say "go find what changed." Midstream captures the entire browser state at your checkpoint — DOM, cookies, local storage, network — and seeds the viewer's browser with it.
It's not about saving five minutes of clicking. It's about removing the friction that stopped you from checking at all. Like a home gym — you're not buying it to save a 10-minute drive. You're buying it because that drive stopped you almost every time.


In your PR
Where review
already happens.
Midstream comments on every PR with a screenshot and a clickable link for each checkpoint. Reviewers don't switch apps. PMs and designers don't ask for a Loom. The demo is one click from the diff.
- Demo links inline with the diff — no context switch.
- Sandboxes suspend after idle, spin back up in seconds.
- Each reviewer can fork their own session to explore safely.
Built for how you work
One platform, three audiences.
Code review
Stop reading diffs alone.
Click through the change instead of guessing what it looks like in production.
Learn moreAI agents
Verify what they built.
Give agents a real environment to test against. Catch UX slop before it merges.
Learn moreCross-functional
Loop in PMs & design.
Stakeholders click the live demo. Feedback lands on the PR while it's still open.
Learn moreWhat you need
Nothing you don't
already have.
Midstream is intentionally boring at the integration layer. We're not asking you to adopt a new test runner, a new CI, or a new deploy pipeline.
- Playwright tests
Existing or new. If you have any E2E coverage today, you're already set.
- A GitHub repo
Midstream installs as a GitHub App. PR comments, status checks, the works.
- A
midstream.jsonThree keys: install, start, test. We use these to spin up your sandbox.
- That's it.
No Docker config, no infra changes, no new CI steps to maintain.