Recording of the visual regression run on www.tractionbooster.com · TractionBooster — app walkthrough.

In this video· click a step to jump to it

W
Passed ✓

Test recording

TractionBooster — app walkthrough

61,982 ms · 104 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against www.tractionbooster.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, 1400); await new Promise(r => setTimeout(r, 350)); await anim(max, 0, 800); })()";
  const LS = {"tractionbooster.onboarded": "true", "sb-nbtiglkguvosgfpfjuvc-auth-token": "•••", "tb_anon_id": "41cabff3-68d5-4edf-88b0-2544648803bb"};
  await page.addInitScript((entries) => { try { for (const k in entries) localStorage.setItem(k, entries[k]); } catch (e) {} }, LS);
  const routeBlock = async (p) => { for (const pat of ['**/cdn-cgi/scripts/**/email-decode.min.js','**/sentry-cdn.com/**','**/browser.sentry-cdn.com/**','**/datafa.st/**','**/*.google-analytics.com/**','**/googletagmanager.com/**']) { await p.route(pat, r => r.abort()).catch(function(){}); } };
  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' });
  await routeBlock(page);

  let n = 0;
  await page.goto(baseUrl + '/', { waitUntil: 'domcontentloaded' });
  await page.waitForLoadState('networkidle').catch(function(){});
+72 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
0.28%
Text
—
DOM
✓
Network
+30 −10
Console
✓
A11y
A
Perf
✓
URL
✓
Variables
—
Full report
Log in →
104
Diff px
1m 02s
Duration
A
Accessible
WCAG 2.2 · 91
A
Fast
Web Vitals · 100

Notes from the demo run

AI-generated

TractionBooster's onboarding is a tight 3-step wizard (describe your ICP, pick subreddits, then search) that drops you straight into a dark-themed Reddit-leads console with Dashboard, Campaigns, Leads, Posts, an Idea Validator and Settings. It reads as a focused single-purpose tool rather than a sprawling dashboard.

Highlights
  • AI ICP improver on onboarding
    Your ICP step has an '✨ IMPROVE' button that rewrites the ideal-customer description — a small touch that lowers the blank-field barrier before a user has to think.
  • Idea Validator as a second hook
    Beyond Reddit lead-gen the console ships an Idea Validator, giving a returning user a second reason to open the app.
Friction points
  • Free plan locks every lead
    On the Leads page every card renders LOCKED behind an Upgrade CTA — a free user sees zero unlocked matched threads, so the 'aha' of one real Reddit lead never lands before the paywall. Even one unlocked example would sharpen conversion.

3 visual changes

Step 321 px changed
Before
Before
After
After
Diff
Diff
Step 478 px changed
Before
Before
After
After
Diff
Diff
Step 85 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 www.tractionbooster.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.