Recording of the visual regression run on www.mysudokuworld.com · MySudokuWorld — app walkthrough.

In this video· click a step to jump to it

W
Passed

Test recording

MySudokuWorld — app walkthrough

82,154 ms · 109,070 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against www.mysudokuworld.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' });

  const go = async (path, waitText) => {
    await page.goto(baseUrl + path, { waitUntil: 'domcontentloaded' });
    await page.waitForLoadState('networkidle', { timeout: 6000 }).catch(function () {});
    await page.getByText(waitText).first().waitFor({ state: 'visible', timeout: 18000 }).catch(function () {});
    await page.waitForTimeout(1600);
  };
+83 more lines claim the test to get the full code.

Checks run

Run
Visual
38.33%
Text
DOM
Network
+456 −456
Console
A11y
C
Perf
1092 over
URL
Variables
Full report
Log in →
109,070
Diff px
1m 22s
Duration
C
Accessible
WCAG 2.2 · 76
Review
Fast
Web Vitals

Notes from the demo run

AI-generated

We registered a real account on MySudokuWorld and then played it the way a new member would: opened an Easy puzzle, selected a cell, placed a digit, spent one of the three AI hints, flipped into Notes mode, then walked Daily, Leaderboard, Achievements, AI Coach, Time Attack and the Solver. The registration-to-first-move path is genuinely short, and the puzzle page is doing something most Sudoku sites do not bother with: the AI hint does not just fill the cell, it names the technique and explains why ('NAKED SINGLE - Row 1, Column 6 can only be 1, all other digits are already used in its row, column, or box'). That single behaviour is the product.

Highlights
  • Your hint teaches instead of solving
    Spending a hint returned a named technique plus the reasoning, not just the answer. That is the difference between a puzzle site and the 'learn advanced strategies' promise on your landing page, and it lands immediately.
  • The puzzle page is a complete learning surface
    Below the live grid you ship solving techniques, a step-by-step beginner guide, a learning-path tracker and an FAQ on one page. A visitor who arrives cold can start playing and start learning without a second click.
  • Signup is four fields and you are in the game
    Name, email, password, confirm, country, then straight to a populated dashboard with XP, streak and eleven difficulty entry points. No email-verification wall between signing up and playing.
Friction points
  • Zeros render as empty boxes in the stat tiles
    On a fresh account the dashboard tiles for TOTAL XP, COMPLETIONS, STREAK and MAX STREAK each show a tofu box glyph where the 0 should be, while GAMES PLAYED shows 1 correctly and 'XP Progress 0 / 1,000' renders fine. Looks like the tile font lacks a zero glyph and falls back. A brand-new player's first screen is therefore all broken boxes.
  • The country picker blocks signup with a late error
    Submitting the form with every visible field filled returns 'Please select a country.' The country control is a custom search dropdown that does not read as required until after a failed submit. Marking it required up front would stop the bounce.
Couldn't reach
  • /multiplayer/tournaments·Live tournaments would pull other real players into a test run.

9 visual changes

Step 1139 px changed
Before
Before
After
After
Diff
Diff
Step 2302 px changed
Before
Before
After
After
Diff
Diff
Step 3266 px changed
Before
Before
After
After
Diff
Diff
Step 4273 px changed
Before
Before
After
After
Diff
Diff
Step 5582 px changed
Before
Before
After
After
Diff
Diff
Step 6490 px changed
Before
Before
After
After
Diff
Diff
Step 7307 px changed
Before
Before
After
After
Diff
Diff
Step 994,363 px changed
Before
Before
After
After
Diff
Diff
Step 1012,348 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,903 test runs recorded · 1,054 products tested with Lastest

This test was built for www.mysudokuworld.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.