Recording of the visual regression run on www.tryspook.com · Spook — app walkthrough.

In this video· click a step to jump to it

W
Passed

Test recording

Spook — app walkthrough

56,665 ms · 93,561 pixels changed

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

Take this test with you

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

export async function test(page, baseUrl, screenshotPath, stepLogger) {
  const UA = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36';
  await page.context().setExtraHTTPHeaders({ 'User-Agent': UA }).catch(() => {});
  for (const pat of [
    '**/cdn-cgi/scripts/**/email-decode.min.js',
    '**/browser.sentry-cdn.com/**',
    '**/cdn.segment.com/**',
    '**/connect.facebook.net/**',
    '**/www.googletagmanager.com/**',
    '**/static.hotjar.com/**',
  ]) { await page.route(pat, r => r.abort()).catch(() => {}); }
+73 more lines claim the test to get the full code.

Checks run

Run
Visual
73.40%
Text
DOM
Network
+2761 −2343
Console
A11y
A
Perf
44 over
URL
385 diverged
Variables
Full report
Log in →
93,561
Diff px
57s
Duration
A
Accessible
WCAG 2.2 · 94
C
Fast
Web Vitals · 70

Notes from the demo run

AI-generated

We signed into Spook with Google and drove the whole authed app: Home, Opportunities, Calendar, Articles, Content performance, AI Visibility, Network, Boost DR and Settings, plus a keyword search from Opportunities. The strongest thing you've built is the pre-add preview: before we'd attached a single site the dashboard already showed a worked 'Yoursite' example with clicks, impressions and winnable-query counts, so the value landed before we committed anything. Adding a site kicked off a 7-day trial with no card and the six-step wizard let us skip Search Console without dead-ending.

Highlights
  • The empty state is a worked example
    Your dashboard renders a populated 'Yoursite' with 1,240 est. visits, 128 keywords and 16 winnable queries before the visitor adds anything. Most SEO tools show a blank chart here; yours sells itself.
  • Wizard is skippable without breaking
    We skipped Search Console at step 2 and the remaining steps still completed. The site landed in the app with 'setup never finished' messaging instead of a broken half-state.
Friction points
  • Session drops in under an hour
    Our authenticated session expired twice inside ~45 minutes and landed us back on /signin mid-walk. An evaluator who opens Spook, goes to read their Search Console and comes back has to log in again. Lengthening the Convex auth token TTL (or refreshing it on focus) would fix it.
  • Notification modal covers the first authed screen
    'Want to know when your first article lands?' is centred over the dashboard on first paint, so the very first thing a new user sees is a permission ask rather than the product. Delaying it until after the first article is queued would read better.

7 visual changes

Step 114,546 px changed
Before
Before
After
After
Diff
Diff
Step 28,173 px changed
Before
Before
After
After
Diff
Diff
Step 46,441 px changed
Before
Before
After
After
Diff
Diff
Step 68,886 px changed
Before
Before
After
After
Diff
Diff
Step 713,748 px changed
Before
Before
After
After
Diff
Diff
Step 825,743 px changed
Before
Before
After
After
Diff
Diff
Step 1016,024 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,708 test runs recorded · 988 products tested with Lastest

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