Recording of the visual regression run on llmwatch-rho.vercel.app · LLMWatch — authed app walkthrough v2.

In this video· click a step to jump to it

L
Passed ✓

Test recording

LLMWatch — authed app walkthrough v2

57,993 ms · 19,404 pixels changed

We built this regression test for llmwatch-rho.vercel.app — it's yours to keep, free.

Take this test with you

This is a real Playwright test, recorded against llmwatch-rho.vercel.app. Claim it into your own workspace and re-run it on every deploy — free.

export async function test(page, baseUrl, screenshotPath, stepLogger) {
  const ENTRY = "/dashboard";
  const MAXROUTES = 4;
  const INTERACTIONS = [{"goto":"/dashboard","dismissModal":true,"click":{"name":"^create$|new project|add project"},"waitMs":1500,"shot":"new-project-form"},{"fills":[{"sel":"input[placeholder=\"Project name\"]","value":"Lastest Visual QA"}],"waitMs":700,"shot":"project-name-filled"},{"click":{"name":"^create$"},"waitMs":3000,"scroll":true,"shot":"project-created"},{"goto":"/dashboard","scroll":true,"waitMs":1500,"shot":"dashboard-with-project"}];
  const shot = (n, s) => screenshotPath.replace('.png', '-' + n + '-' + s + '.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, 1400); await new Promise(r => setTimeout(r, 350)); await anim(max, 0, 800); })()";

  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 pat of ['**/cdn-cgi/scripts/**/email-decode.min.js','**/cdn-cgi/scripts/**/cloudflare-static/**','**/browser.sentry-cdn.com/**','**/cdn.segment.com/**','**/connect.facebook.net/**']) {
    await page.route(pat, function (r) { return r.abort(); }).catch(function () {});
  }
+92 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
18.22%
Text
—
DOM
✓
Network
—
Console
✓
A11y
B
Perf
✓
URL
✓
Variables
—
Full report
Log in →
19,404
Diff px
58s
Duration
B
Accessible
WCAG 2.2 · 83
A
Fast
Web Vitals · 100

Notes from the demo run

AI-generated

LLMWatch is a minimal LLM-observability dashboard — Projects, Logs and Alerts tabs over a quiet dark UI. New users land on a 'Let's get you set up' empty state, and project creation is inline (type a name, hit Create) with no modal detour.

Highlights
  • Zero-friction first action
    Creating a project is a single inline input + button on the dashboard — no modal, no wizard. Good for getting a new user to 'aha' fast.
  • Scope matches the pitch
    Logs + Alerts + A/B testing line up exactly with the launch promise (compare cost/latency across prompt variants, warn on spend spikes).
Friction points
  • Verify-email wall before the app
    Supabase email confirmation gates login; /dashboard redirects to /auth/login until verified, so a brand-new evaluator can't poke around immediately.
  • Duplicated 'Sign Up' label
    The login screen shows 'Sign Up' both as the mode toggle and as the form submit — momentarily ambiguous which one you're clicking.

6 visual changes

Step 12,961 px changed
Before
Before
After
After
Diff
Diff
Step 52,961 px changed
Before
Before
After
After
Diff
Diff
Step 62,961 px changed
Before
Before
After
After
Diff
Diff
Step 73,507 px changed
Before
Before
After
After
Diff
Diff
Step 83,507 px changed
Before
Before
After
After
Diff
Diff
Step 93,507 px changed
Before
Before
After
After
Diff
Diff

Share this run

Earned · Lastest awards

Proof your app is not AI slop

LASTEST
starter
regressions
0
Badges stay live, ratchet upward, only downgrade on confirmed regression.
57,239 test runs recorded · 1,156 products tested with Lastest

This test was built for llmwatch-rho.vercel.app — 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.