Recording of the visual regression run on www.winthespot.com · WinTheSpot — app walkthrough.

In this video· click a step to jump to it

W
Passed ✓

Test recording

WinTheSpot — app walkthrough

116,352 ms · 355,894 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against www.winthespot.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, 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, 1100); await new Promise(r => setTimeout(r, 280)); await anim(max, 0, 650); })()";

  await page.context().setExtraHTTPHeaders({ 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36' });
  for (const pattern of ['**/cdn-cgi/scripts/**', '**/sentry-cdn.com/**', '**/cdn.segment.com/**', '**/connect.facebook.net/**', '**/*.posthog.com/**', '**/google-analytics.com/**', '**/googletagmanager.com/**']) {
    await page.route(pattern, function (r) { r.abort(); }).catch(function () {});
  }

  stepLogger.log('Authed 1: signed-in home with the live ranked window');
  await page.goto(baseUrl + '/', { waitUntil: 'domcontentloaded' });
  await page.getByText('Ranked attempts remaining').first().waitFor({ state: 'visible', timeout: 25000 }).catch(function () {});
+78 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
92.64%
Text
—
DOM
✓
Network
+66 −0
Console
✓
A11y
A
Perf
110 over
URL
✓
Variables
—
Full report
Log in →
355,894
Diff px
1m 56s
Duration
A
Accessible
WCAG 2.2 · 94
B
Fast
Web Vitals · 85

Notes from the demo run

AI-generated

We signed up as a free Player, confirmed the email, claimed a username and then actually played: signed-in home with the live ranked window, the Champion interstitial, the play hub, the ranked attempt board, the practice hub, a real Bullseye practice run (we reached Round 2 on camera), leaderboard, Champion and account settings. The fairness promise is the product's spine and it is repeated at exactly the right moments, including on the paid pricing page.

Highlights
  • Practice mode means an evaluator can try the game with zero risk
    Unlimited, labelled PRACTICE, never ranks. We played a full run without touching any of the 5 ranked attempts. Most competitive game products force you to burn a real life to find out whether you like it.
  • The fairness line survives the pricing page
    'Payment never buys attempts, score, difficulty, or Champion' appears in the footer, on /pricing and on the Champion card. Saying it where the money is asked for is what makes it credible.
  • The ranked window is a live countdown, not a date
    'Ranked window closes in 19:44 UTC' plus 'Ranked attempts remaining: 5 / 5' on the signed-in home. A returning player knows their state before clicking anything.
Friction points
  • The header Account link and the /account URL disagree
    The signed-in header links to /settings, but /account renders your styled 404 while still showing the signed-in nav. Anyone who types the word they just read in the header lands on a dead page. A /account to /settings redirect closes it.
  • Clicking Play before claiming a username silently redirects
    A freshly-verified account clicking Play is bounced to /onboarding/username with no explanation of why. One line ('Claim a username to enter today's board') would turn a redirect into an onboarding step.
Couldn't reach
  • /pricing·Reached while signed in but trimmed from the capture to keep the recording inside budget.

5 visual changes

Step 190 px changed
Before
Before
After
After
Diff
Diff
Step 289,452 px changed
Before
Before
After
After
Diff
Diff
Step 389,462 px changed
Before
Before
After
After
Diff
Diff
Step 496,571 px changed
Before
Before
After
After
Diff
Diff
Step 780,319 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 www.winthespot.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.