Recording of the visual regression run on klugoapp.com · Klugo — app walkthrough.

In this video· click a step to jump to it

K
Passed ✓

Test recording

Klugo — app walkthrough

77,001 ms · 136,565 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against klugoapp.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 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, 1300); 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' });
  await page.route('**/cdn-cgi/scripts/**', function (r) { r.abort(); }).catch(function () {});
  await page.route('**/*sentry*/**', function (r) { r.abort(); }).catch(function () {});
  await page.route('**/connect.facebook.net/**', function (r) { r.abort(); }).catch(function () {});

  // ── 1. Public landing (context) ───────────────────────────────────────────
  stepLogger.log('Scenario 1: Klugo landing page');
  await page.goto(baseUrl, { waitUntil: 'domcontentloaded' });
+94 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
100.00%
Text
—
DOM
✓
Network
+55 −77
Console
✓
A11y
A
Perf
88 over
URL
✓
Variables
—
Full report
Log in →
136,565
Diff px
1m 17s
Duration
A
Accessible
WCAG 2.2 · 91
B
Fast
Web Vitals · 85

Notes from the demo run

AI-generated

Klugo's onboarding is the best part of the product: four short steps (topic, level, daily goal, handle) and you land on a dashboard that already has 200 coins, a streak counter and eight learning tracks staged. We signed up with email+password, confirmed via the link, walked all five tabs, and completed a real lesson question end to end, which graded correctly and awarded 50 XP on the spot.

Highlights
  • Onboarding earns the data it asks for
    Every one of your four onboarding steps visibly changes the dashboard afterwards - topic sets the first track, the daily goal shows as '0 /5M'. Nothing is asked for and then ignored, which is rarer than it should be.
  • Lesson grading feels instant
    Selecting an answer and pressing Check returned the 'Correct!' panel with an explanation and the XP counter ticking 0 to 50 in under a second. That moment is the product, and it lands.
  • Locked leaderboard is an honest empty state
    'Complete 10 lessons to join your first league - 0 / 10' is much better than an empty table. The user knows exactly what unlocks it.
Friction points
  • Answer options are button[role=radio], not plain buttons
    Our first pass clicked them with a normal button selector and every click silently no-opped - Check stayed disabled and three consecutive frames came out identical. Real users are fine, but any screen reader or automation that looks for a radiogroup wrapper will struggle; there is no role=radiogroup parent around the options.
  • Quitting a lesson silently discards the XP you just earned
    We answered one question correctly (50 XP shown), left the lesson, and the dashboard was back to 0 XP / 0 streak. The 'Your progress won't be saved' copy is in the quit dialog, but the XP counter had already animated up, so it reads as a loss rather than a warning.

7 visual changes

Step 11,745 px changed
Before
Before
After
After
Diff
Diff
Step 31,788 px changed
Before
Before
After
After
Diff
Diff
Step 718,837 px changed
Before
Before
After
After
Diff
Diff
Step 82,146 px changed
Before
Before
After
After
Diff
Diff
Step 954,912 px changed
Before
Before
After
After
Diff
Diff
Step 1055,030 px changed
Before
Before
After
After
Diff
Diff
Step 112,107 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 klugoapp.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.