01/**
02 * External driver. Mocked stores.
03 * Blind to what actually broke.
04 */
05export const TestSuite = () => {
06 <Test.Runner>
07 <MockedState />
08 <FakeBackend />
09 <DOMOnly />
10 </Test.Runner>
11};
01/**
02 * Runs inside your app.
03 * Tests what actually matters.
04 */
05export const TestSuite = () => {
06 <Test.Runner>
07 <LiveState />
08 <RealBackend />
09 <RaceDetected />
10 </Test.Runner>
11};
05export const TestSuite = () => {
06 <Test.Runner>
07 <MockedState />
08 <FakeBackend />
09 <DOMOnly />
10 </Test.Runner>
11};
06 <Test.Runner>
07 <LiveState />
08 <RealBackend />
09 <RaceDetected />
10 </Test.Runner>

Tests are broken

Your tests pass. Your app still breaks. The bugs that matter live
where no test suite can see. Race conditions, state mutations,
async interleaving. Mosaic runs inside your live app.
Real state. Real backend. Zero mocks.

Mosaic is currently in development.

Sign up for the waitlist for early access.

Request early access

Mosaic is currently in development. Sign up for the waitlist for early access.

Your tests pass. Your app still breaks.

Mocked stores, fake DOMs, external drivers — existing tools test a simulation of your app, not your app. Race conditions, state mutations, and async interleaving bugs slip through every time.

Mosaic runs inside your live application. It subscribes to your stores in real-time, traces every mutation, and asserts against your actual state — while hitting your real backend with zero mocks.

Describe what should happen. Not how to click.

Playwright tests click buttons and read DOM text. They don't know what your app is thinking. Mosaic tests what matters — store transitions, session lifecycle, checkpoint integrity, IPC round-trips.

One test. 18 steps. 4 rewinds. File creation, editing, and revert verification. Real API calls. Direct Zustand subscriptions. All from a single function call.

Built internally. Battle-tested. Now available.

We built Mosaic because nothing else could catch our bugs — session ID remapping mid-stream, sidebar entries vanishing during streaming, checkpoint mutations silently dropped. Timing-dependent race conditions that only appear when real async operations interleave with real user actions.

After months of internal use catching bugs that no existing tool could reproduce, we're making Mosaic available. Request early access below.

MosaicPlaywrightVitestCypressRedux DevTools
Runs inside app
Direct store access
Zero mocks
Mutation tracing
Structured test runner