Recording of the visual regression run on www.whisprlive.live · WhisprLive — app walkthrough (authenticated).

In this video· click a step to jump to it

W
Passed ✓

Test recording

WhisprLive — app walkthrough (authenticated)

57,498 ms · 10,962 pixels changed

We built this regression test for www.whisprlive.live — it's yours to keep, free.

Take this test with you

This is a real Playwright test, recorded against www.whisprlive.live. Claim it into your own workspace and re-run it on every deploy — free.

export async function test(page, baseUrl, screenshotPath, stepLogger) {
  const shot = (n, slug) => screenshotPath.replace('.png', `-${n}-${slug}.png`);
  const SCROLL_THROUGH = "(async () => { const ease = t => 1 - Math.pow(1 - t, 3); const max = Math.max(0, document.body.scrollHeight - window.innerHeight); if (max < 40) return; const anim = (a, b, ms) => new Promise(res => { const t0 = performance.now(); const step = now => { const p = Math.min(1, (now - t0) / ms); window.scrollTo(0, a + (b - a) * ease(p)); p < 1 ? requestAnimationFrame(step) : res(); }; requestAnimationFrame(step); }); await anim(0, max, 1200); await new Promise(r => setTimeout(r, 300)); await anim(max, 0, 700); })()";

  await page.context().setExtraHTTPHeaders({ 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36' });
  for (const pattern of ['**/cdn-cgi/scripts/**/email-decode.min.js', '**/browser.sentry-cdn.com/**', '**/cdn.segment.com/**', '**/connect.facebook.net/**', '**/www.googletagmanager.com/**']) {
    await page.route(pattern, function (r) { r.abort(); }).catch(function () {});
  }

  // ---- 1. Host dashboard (session replayed from localStorage via setup storage_state)
  stepLogger.log('1: host dashboard — new session form');
  await page.goto(baseUrl + '/dashboard', { waitUntil: 'domcontentloaded' });
+84 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
3.95%
Text
—
DOM
✓
Network
+210 −1290
Console
✓
A11y
A
Perf
750 over
URL
✓
Variables
—
Full report
Log in →
10,962
Diff px
57s
Duration
A
Accessible
WCAG 2.2 · 92
B
Fast
Web Vitals · 85

Notes from the demo run

AI-generated

We created a WhisprLive account, verified the 6-digit code, and then drove the host side end-to-end: picked the Live Event Q&A preset, named a 15-minute session, generated the room, enlarged the join QR, opened live polls, hit the leave-the-room guard, browsed past sessions and the poll library, and came back into the still-running room. From landing on the dashboard to having a live room with a scannable QR and a shareable /ask/ link took about twenty seconds and four clicks. That is the whole pitch and it holds up.

Highlights
  • Four clicks from dashboard to a live room
    Preset → title → duration → Generate link, and you have a room code, a QR, a WhatsApp share button and a live message feed. No event object to configure first, no wizard.
  • The leave-the-room guard is genuinely thoughtful
    Navigating tabs while a session is live raises 'Active session running' with 'Don't worry: your session remains active in your dashboard'. Reassuring the host that leaving the view does not kill the room is exactly the anxiety a presenter has mid-talk.
  • Poll templates are framed around the live moment
    'Prepare your interactive questions beforehand. Launch any draft into an active room with 1 click' — writing polls while presenting is the failure mode, and the empty state names it.
Friction points
  • The guard modal fires on every tab click, not once per session
    Moving Active session → Past sessions → Poll Library raised the same 'Are you sure you want to navigate away' dialog each time. Once per session (or a quiet 'still live' pill in the tab bar, which you already have) would stop it feeling like a nag by the third tab.
  • The join QR modal only closes via its own × button
    Escape does not dismiss the Join Scanner modal and neither does a backdrop click. On a projector, mid-talk, a host reaching for Escape and getting nothing is a bad ten seconds. A one-line keydown handler covers it.
Couldn't reach
  • Upgrade / Buy Room Pass·We never walk into a paid checkout on a founder's own product
  • /ask/<code> attendee view·Submitting questions would have put test content into a live room

5 visual changes

Step 41,458 px changed
Before
Before
After
After
Diff
Diff
Step 57,857 px changed
Before
Before
After
After
Diff
Diff
Step 7230 px changed
Before
Before
After
After
Diff
Diff
Step 925 px changed
Before
Before
After
After
Diff
Diff
Step 101,392 px changed
Before
Before
After
After
Diff
Diff

Share this run

Earned · Lastest awards

Proof your app is not AI slop

LASTEST
starter
tests
all passing
regressions
0
Badges stay live, ratchet upward, only downgrade on confirmed regression.
57,226 test runs recorded · 1,151 products tested with Lastest

This test was built for www.whisprlive.live — claim it free

One click copies the test and baseline screenshots into your own Lastest workspace. Re-run on every deploy and catch regressions before your users do — free, no card required.