Recording of the visual regression run on tennis-match-alert.replit.app · Match Time — app walkthrough.

In this video· click a step to jump to it

T
Passed ✓

Test recording

Match Time — app walkthrough

22,167 ms · 173,667 pixels changed

We built this regression test for tennis-match-alert.replit.app — it's yours to keep, free.

Take this test with you

This is a real Playwright test, recorded against tennis-match-alert.replit.app. Claim it into your own workspace and re-run it on every deploy — free.

export async function test(page, baseUrl, screenshotPath, stepLogger) {
  // Authentication is delivered via an attached Lastest storage_state (the
  // "sid" session cookie on tennis-match-alert.replit.app, captured from a
  // verified interactive login through Replit's OIDC provider). We do NOT
  // attempt the OIDC handshake inline here: replit.com is Cloudflare-blocked
  // from the EB pod's egress IP range (confirmed via the auth-setup test),
  // so any inline login attempt would fail before ever reaching the
  // credentials form. The storage_state is replayed automatically by the
  // runner before this test starts.

  const shot = (n, slug) => screenshotPath.replace('.png', `-${n}-${slug}.png`);
  const settle = function () { return page.waitForLoadState('networkidle').catch(function () {}); };
+150 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
91.09%
Text
—
DOM
✓
Network
+48 −12
Console
✓
A11y
Review
Perf
✓
URL
✓
Variables
—
Full report
Log in →
173,667
Diff px
22s
Duration
Review
Accessible
WCAG 2.2
A
Fast
Web Vitals · 100

Notes from the demo run

AI-generated

Match Time is a real, functioning tennis-tracking app built on Replit with a live ATP/WTA data backend behind Repl Auth (Google/Apple/email OIDC). The dark, high-contrast lime-on-black design is clean and legible, and the marquee ticker of real match results (Wimbledon, Bad Homburg) running across the top of every page gives the dashboard a genuine live-sports-terminal feel even before you follow anyone. The empty-state copy on a fresh account ("No players followed" / "Follow your favorite players to start tracking their matches") is clear and immediately actionable via the 'Find Players' CTA.

Highlights
  • Real ATP/WTA player data
    Searching 'Alcaraz' and 'Swiatek' returned real, correctly-ranked ATP/WTA players (Carlos Alcaraz ESP Rank #2, Iga Swiatek POL Rank #3) with photos and country flags — this is backed by a genuine tennis data API, not mock content.
  • Personalized dashboard updates instantly
    The 'Following' counter, roster list, and results feed all update immediately and persist across page navigations and reloads after following/unfollowing a player — real server-side state, not client-only.
  • Favorite/pin feature works end-to-end
    The star icon next to a followed player toggles a 'FAVORITE' badge that persists in the roster list — this is the 'pin the match/player you care about most' feature the founder described.
  • Roster-scoped Results page
    The Results page correctly scoped its 21-day match history to only the followed player (Iga Swiatek's actual recent Wimbledon/Bad Homburg results with real scores and W/L badges) rather than showing all tour results.
Friction points
  • Replit OIDC host is Cloudflare-blocked from automated test infrastructure
    Attempting the Sign In -> replit.com handshake from our automated browser pool was blocked by Cloudflare's bot-protection with a hard 'Sorry, you have been blocked' page. A real user's browser is unaffected, but any automated QA/monitoring tooling driven from a datacenter IP range will hit the same wall — worth knowing if you ever want to run your own automated login tests.
  • Player detail page has a brief unstyled loading-skeleton flash
    Navigating to a followed player's detail page (/players/:id) briefly shows an unstyled loading skeleton before the player header and match list render — cosmetic, but a short skeleton-to-content transition would look more polished.

11 visual changes

Step 12,844 px changed
Before
Before
After
After
Diff
Diff
Step 253 px changed
Before
Before
After
After
Diff
Diff
Step 34,564 px changed
Before
Before
After
After
Diff
Diff
Step 410,426 px changed
Before
Before
After
After
Diff
Diff
Step 58,707 px changed
Before
Before
After
After
Diff
Diff
Step 64,003 px changed
Before
Before
After
After
Diff
Diff
Step 75,260 px changed
Before
Before
After
After
Diff
Diff
Step 816,469 px changed
Before
Before
After
After
Diff
Diff
Step 933,457 px changed
Before
Before
After
After
Diff
Diff
Step 1043,896 px changed
Before
Before
After
After
Diff
Diff
Step 1143,988 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,344 test runs recorded · 1,174 products tested with Lastest

This test was built for tennis-match-alert.replit.app — 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.