Recording of the visual regression run on usertrack.dev · UserTrack — app walkthrough.

In this video· click a step to jump to it

U
Passed

Test recording

UserTrack — app walkthrough

81,299 ms · 8,599 pixels changed

We built this regression test for usertrack.dev — it's yours to keep, free.

Take this test with you

This is a real Playwright test, recorded against usertrack.dev. 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`);

  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' });
  await page.route('**/cdn-cgi/scripts/**', function (r) { r.abort(); }).catch(function () {});
  await page.route('**/connect.facebook.net/**', function (r) { r.abort(); }).catch(function () {});

  // ── Step 1: public home (context) ───────────────────────────────────────
  stepLogger.log('Step 1: Public home');
  await page.goto(baseUrl, { waitUntil: 'domcontentloaded' });
  await page.waitForLoadState('networkidle', { timeout: 2500 }).catch(function () {});
  await page.locator('h1, main').first().waitFor({ state: 'visible', timeout: 10000 }).catch(function () {});
+101 more lines claim the test to get the full code.

Checks run

Run
Visual
17.86%
Text
DOM
Network
Console
A11y
A
Perf
156 over
URL
Variables
Full report
Log in →
8,599
Diff px
1m 21s
Duration
A
Accessible
WCAG 2.2 · 95
B
Fast
Web Vitals · 85

Notes from the demo run

AI-generated

We created an account on usertrack.dev, verified by email, ran your onboarding and walked all eight signed-in surfaces with a product ('Lastest') registered. Thirteen steps recorded end to end. The standout is how honest the empty state is: instead of fake numbers, every panel names the one thing blocking it, and the Next Actions strip turns that into two buttons.

Highlights
  • Empty state that instructs instead of apologising
    Overview shows 0 users but pairs it with 'Publish your page' and 'Connect an activation source'. The dashboard is useful on day zero, which is the hardest day to design for.
  • Agent-first onboarding step
    Step 3 hands a written brief to Claude Code / Cursor / Codex with a 'Copy to LLM' button rather than making you read integration docs. We have not seen another tracker do this.
  • One URL fills the whole product record
    Typing lastest.cloud pre-filled name, description, icon and category. Correcting one field beats typing five.
  • Benchmarks refuse to guess
    'Benchmarks compare public, verified products' is shown instead of an invented percentile. Matches what you have been posting about not seeding fake rows.
Friction points
  • Nothing tells you the digest is empty before you open it
    Weekly Digest offers 'Preview this week' but a fresh account has no movement to preview, so the click lands on a blank week. A disabled state with 'available after your first sync' would set expectations.
  • One critical accessibility violation on the signed-in app
    Our axe-core pass scored 95 with 1 critical rule failing across the /app surfaces. Worth a single audit pass now while the surface count is still small.

3 visual changes

Step 22,441 px changed
Before
Before
After
After
Diff
Diff
Step 86,132 px changed
Before
Before
After
After
Diff
Diff
Step 1126 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.
56,753 test runs recorded · 1,006 products tested with Lastest

This test was built for usertrack.dev — 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.