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

In this video· click a step to jump to it

R
Passed ✓

Test recording

ranksurf — app walkthrough

57,306 ms · 575 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against ranksurf.com. Claim it into your own workspace and re-run it on every deploy — free.

export async function test(page, baseUrl, screenshotPath, stepLogger) {
  await page.route(/cloudflare|googletagmanager|google-analytics|posthog|cdn-cgi|hotjar|segment|amplitude|mixpanel|intercom|crisp\.chat/i, route => route.abort()).catch(() => {});
  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'
  });

  // Inline Supabase auth cookie for [email protected] (captured 2026-05-30).
  // Access JWT ~1h TTL — if it expires, refresh by re-running signup + magic-link flow.
  const AUTH_COOKIE = {"name": "sb-wyseesmiviovqmnjthqs-auth-token", "value": "base64-eyJhY2Nlc3NfdG9rZW4iOiJleUpoYkdjaU9pSkZVekkxTmlJc0ltdHBaQ0k2SW1ObE5UTTRNVFl4TFdJek0yRXROR00wTUMwNVpEVmpMVFE0TnpKa1pqQm1ORGcwT0NJc0luUjVjQ0k2SWtwWFZDSjkuZXlKcGMzTWlPaUpvZEhSd2N6b3ZMM2Q1YzJWbGMyMXBkbWx2ZG5GdGJtcDBhSEZ6TG5OMWNHRmlZWE5sTG1OdkwyRjFkR2d2ZGpFaUxDSnpkV0lpT2lJMU5tTXpObUl6TnkwNFpUTXpMVFF4WkdVdFlqZzFOQzFrTW1ZelptRXhZbVkwTW1ZaUxDSmhkV1FpT2lKaGRYUm9aVzUwYVdOaGRHVmtJaXdpWlhod0lqb3hOemd3TVRZMk9Ea3lMQ0pwWVhRaU9qRTNPREF4TmpNeU9USXNJbVZ0WVdsc0lqb2liR0Z6ZEdWemRHTnNiM1ZrSzNKaGJtdHpkWEptTkVCbmJXRnBiQzVqYjIwaUxDSndhRzl1WlNJNklpSXNJbUZ3Y0Y5dFpYUmhaR0YwWVNJNmV5SndjbTkyYVdSbGNpSTZJbVZ0WVdsc0lpd2ljSEp2ZG1sa1pYSnpJanBiSW1WdFlXbHNJbDE5TENKMWMyVnlYMjFsZEdGa1lYUmhJanA3SW1WdFlXbHNJam9pYkdGemRHVnpkR05zYjNWa0szSmhibXR6ZFhKbU5FQm5iV0ZwYkM1amIyMGlMQ0psYldGcGJGOTJaWEpwWm1sbFpDSTZkSEoxWlN3aWNHaHZibVZmZG1WeWFXWnBaV1FpT21aaGJITmxMQ0p6ZFdJaU9pSTFObU16Tm1Jek55MDRaVE16TFRReFpHVXRZamcxTkMxa01tWXpabUV4WW1ZME1tWWlmU3dpY205c1pTSTZJbUYxZEdobGJuUnBZMkYwWldRaUxDSmhZV3dpT2lKaFlXd3hJaXdpWVcxeUlqcGJleUp0WlhSb2IyUWlPaUpsYldGcGJDOXphV2R1ZFhBaUxDSjBhVzFsYzNSaGJYQWlPakUzT0RBeE5EWXdNemQ5WFN3aWMyVnpjMmx2Ymw5cFpDSTZJbUppTm1KbU4ySTRMVFUxT0RjdE5EQm1NUzFpTURKaUxUZGpPVFpoTnpBelptUTBZeUlzSW1selgyRnViMjU1Ylc5MWN5STZabUZzYzJWOS54WHEwR2NCbG5kWVJkeXphcjBMcFVXV2Y3c1dzR0MtTjMwVkNqaWF0b0ZwanJXb1F2dHRnR2piaVFQOE4weDJPUjdJdE0xZXdkQnRvRzdsc0g3Q2E3dyIsInRva2VuX3R5cGUiOiJiZWFyZXIiLCJleHBpcmVzX2luIjozNjAwLCJleHBpcmVzX2F0IjoxNzgwMTY2ODkyLCJyZWZyZXNoX3Rva2VuIjoiNHBrdnp4Ymxqc3kzIiwidXNlciI6eyJpZCI6IjU2YzM2YjM3LThlMzMtNDFkZS1iODU0LWQyZjNmYTFiZjQyZiIsImF1ZCI6ImF1dGhlbnRpY2F0ZWQiLCJyb2xlIjoiYXV0aGVudGljYXRlZCIsImVtYWlsIjoibGFzdGVzdGNsb3VkK3JhbmtzdXJmNEBnbWFpbC5jb20iLCJlbWFpbF9jb25maXJtZWRfYXQiOiIyMDI2LTA1LTMwVDEzOjAwOjM3LjQxMDYzWiIsInBob25lIjoiIiwiY29uZmlybWF0aW9uX3NlbnRfYXQiOiIyMDI2LTA1LTMwVDEyOjU5OjEwLjcyNTVaIiwiY29uZmlybWVkX2F0IjoiMjAyNi0wNS0zMFQxMzowMDozNy40MTA2M1oiLCJsYXN0X3NpZ25faW5fYXQiOiIyMDI2LTA1LTMwVDEzOjAwOjM3LjczNzA5OFoiLCJhcHBfbWV0YWRhdGEiOnsicHJvdmlkZXIiOiJlbWFpbCIsInByb3ZpZGVycyI6WyJlbWFpbCJdfSwidXNlcl9tZXRhZGF0YSI6eyJlbWFpbCI6Imxhc3Rlc3RjbG91ZCtyYW5rc3VyZjRAZ21haWwuY29tIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsInBob25lX3ZlcmlmaWVkIjpmYWxzZSwic3ViIjoiNTZjMzZiMzctOGUzMy00MWRlLWI4NTQtZDJmM2ZhMWJmNDJmIn0sImlkZW50aXRpZXMiOlt7ImlkZW50aXR5X2lkIjoiMGFlMTc3YTktNzIwZC00NjA2LWI4MjgtMGJiOWE2MTY5YTk4IiwiaWQiOiI1NmMzNmIzNy04ZTMzLTQxZGUtYjg1NC1kMmYzZmExYmY0MmYiLCJ1c2VyX2lkIjoiNTZjMzZiMzctOGUzMy00MWRlLWI4NTQtZDJmM2ZhMWJmNDJmIiwiaWRlbnRpdHlfZGF0YSI6eyJlbWFpbCI6Imxhc3Rlc3RjbG91ZCtyYW5rc3VyZjRAZ21haWwuY29tIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsInBob25lX3ZlcmlmaWVkIjpmYWxzZSwic3ViIjoiNTZjMzZiMzctOGUzMy00MWRlLWI4NTQtZDJmM2ZhMWJmNDJmIn0sInByb3ZpZGVyIjoiZW1haWwiLCJsYXN0X3NpZ25faW5fYXQiOiIyMDI2LTA1LTMwVDEyOjU5OjEwLjY4ODU0MloiLCJjcmVhdGVkX2F0IjoiMjAyNi0wNS0zMFQxMjo1OToxMC42ODkzOTRaIiwidXBkYXRlZF9hdCI6IjIwMjYtMDUtMzBUMTI6NTk6MTAuNjg5Mzk0WiIsImVtYWlsIjoibGFzdGVzdGNsb3VkK3JhbmtzdXJmNEBnbWFpbC5jb20ifV0sImNyZWF0ZWRfYXQiOiIyMDI2LTA1LTMwVDEyOjU5OjEwLjU5NTY0OFoiLCJ1cGRhdGVkX2F0IjoiMjAyNi0wNS0zMFQxNzo0ODoxMi43OTk3NzJaIiwiaXNfYW5vbnltb3VzIjpmYWxzZX19", "domain": "ranksurf.com", "path": "/", "expires": 1814722892, "httpOnly": false, "secure": true, "sameSite": "Lax"};
  await page.context().addCookies([AUTH_COOKIE]).catch(err => {
    stepLogger.warn(`addCookies failed: ${err && err.message}`);
  });
+220 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
0.16%
Text
—
DOM
✓
Network
+22 −22
Console
✓
A11y
—
Perf
22 drift
URL
✓
Variables
—
Full report
Log in →
575
Diff px
57s
Duration
—
Accessible
A
Fast
Web Vitals · 100

Notes from the demo run

AI-generated

RankSurf onboarding walkthrough covers the public marketing surface, the free AI visibility scan, and the gated post-signup flow. Cookie-replay authentication lands cleanly on /onboarding, the brand auto-detect step renders, and the scan kickoff plus retry surfaces are captured. Pricing screen at /onboarding/plan also renders for authed users.

Highlights
  • Public marketing scan
    Free AI visibility scan loads with a clean domain input and accepts pressSequentially typing without losing focus.
  • Cookie-replay auth
    Inlined Supabase access token replays as a cookie and the app honours it: /onboarding lands authed without bouncing to /auth/login.
  • Brand auto-detect
    Typing a domain in the brand-entry step triggers async brand detection and renders the detected branding panel.
  • Scan kickoff via API
    Test bypasses the realtime listener by POSTing /api/preview-scan directly, then polls /api/prompts until generated queries appear or 90s elapses.
  • Final scan + plan surfaces
    Captures whichever final scan state renders (results, empty-list, or retry) and the gated /onboarding/plan pricing wizard step.
Friction points

Visual change

Step 1575 px changed
Before
Before
After
After
Diff
Diff

Share this run

Earned · Lastest awards

Proof your app is not AI slop

LASTEST
starter
tests
all passing
regressions
0
Badges stay live, ratchet upward, only downgrade on confirmed regression.
57,604 test runs recorded · 1,174 products tested with Lastest

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