Recording of the visual regression run on app.letretro.com · letRetro — app walkthrough.

In this video· click a step to jump to it

A
Passed ✓

Test recording

letRetro — app walkthrough

101,592 ms · 13,134 pixels changed

We built this regression test for app.letretro.com — it's yours to keep, free.

Take this test with you

This is a real Playwright test, recorded against app.letretro.com. 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 STAMP = Date.now().toString(36);
  const BOARD = 'https://app.letretro.com/board/ea32eae4-f4c3-43df-9755-44b80496cb6b';
  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' });
  await page.route('**/cdn-cgi/scripts/**', function (r) { r.abort(); }).catch(function () {});
  await page.route('**/*sentry-cdn.com/**', function (r) { r.abort(); }).catch(function () {});
  await page.route('**/*.posthog.com/**', function (r) { r.abort(); }).catch(function () {});

  // ─── Scenario 1: public home (context only) ──────────────────────────────
+105 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
18.46%
Text
—
DOM
✓
Network
+24 −24
Console
✓
A11y
C
Perf
888 over
URL
✓
Variables
—
Full report
Log in →
13,134
Diff px
1m 42s
Duration
C
Accessible
WCAG 2.2 · 78
Review
Fast
Web Vitals

Notes from the demo run

AI-generated

We signed into letRetro with Google, created a Start/Stop/Continue board, added a card mid-run and walked eleven authenticated surfaces. The retro board itself is the strongest thing you have: columns, card counts, vote/comment affordances and the session timer are all legible in a single frame with no onboarding tour in the way. The board-creation wizard (name, template, team, privacy) is four steps but each one has exactly one decision on it, which is why an agent could complete it without a single retry.

Highlights
  • Board creation is four one-decision steps
    Name, template, team, privacy. No step asks two things at once, so nothing needs re-reading. Eight templates with the column count printed on each card means the choice is made without opening docs.
  • The board frame explains itself
    Column headers carry live counts, each card shows votes/comments/timestamps, and the timer plus Finish Board sit in the header. A newcomer joining mid-retro can read the state in one glance.
  • Billing shows real usage, not just plan names
    Your /dashboard/billing renders live counters (boards 1/3, AI docs 0/2, exports 0/5) against the Free plan. That is a far better upgrade argument than a feature table alone.
  • MFA nudge is dismissible, not blocking
    The 'Strengthen your account' prompt offers 'Remind me in 7 days'. Most products in this category hard-gate the dashboard on it.
Friction points
  • Add card lands in whichever column was last opened
    We clicked Add card under CONTINUE twice and both cards landed in STOP. The composer appears to bind to the last-focused column rather than the clicked one. Scoping the composer state to the column element would fix it.
  • Trends is a full-page lock screen on Free
    /dashboard/trends renders only the 'Unlock Trend Analysis' card with the real panel greyed out behind it. Showing one real board's trend with the rest blurred would sell the upgrade harder than an empty lock.
Couldn't reach
  • /dashboard/settings/api-keys·Skipped deliberately - we do not mint API keys on a recorded demo.

5 visual changes

Step 227 px changed
Before
Before
After
After
Diff
Diff
Step 33,477 px changed
Before
Before
After
After
Diff
Diff
Step 43,576 px changed
Before
Before
After
After
Diff
Diff
Step 53,591 px changed
Before
Before
After
After
Diff
Diff
Step 132,463 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,226 test runs recorded · 1,151 products tested with Lastest

This test was built for app.letretro.com — 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.