Recording of the visual regression run on www.scrolllaunch.com · ScrollLaunch — app walkthrough.

In this video· click a step to jump to it

W
Passed

Test recording

ScrollLaunch — app walkthrough

89,456 ms · 16,249 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against www.scrolllaunch.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); })()";

  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 page.route('**/cdn-cgi/scripts/**', function (r) { r.abort(); }).catch(function () {});
  await page.route('**/connect.facebook.net/**', function (r) { r.abort(); }).catch(function () {});

  // ─── Scenario 1: public home (context) ────────────────────────────────────
  stepLogger.log('Scenario 1: Public launch feed');
  await page.goto(baseUrl + '/', { waitUntil: 'domcontentloaded' });
  await page.waitForLoadState('networkidle', { timeout: 4000 }).catch(function () {});
+75 more lines claim the test to get the full code.

Checks run

Run
Visual
6.81%
Text
DOM
Network
+130 −130
Console
A11y
A
Perf
290 over
URL
Variables
Full report
Log in →
16,249
Diff px
1m 29s
Duration
A
Accessible
WCAG 2.2 · 94
Review
Fast
Web Vitals

Notes from the demo run

AI-generated

We signed into ScrollLaunch with Google and drove the maker workspace end to end: dashboard, Products, Analytics, Daily streaks, Maker profile (we edited the bio field live), then the full Launch-a-product form. The standout is "Fill with AI": we pasted one URL and it came back with product name, an 80-char tagline, a 900-word description, the website field and a fetched logo already in place. That is the shortest path from "I have a URL" to "I have a listing" we have seen on a launch directory, and it is the thing worth putting at the top of your own onboarding.

Highlights
  • Fill with AI does the whole listing from one URL
    Pasting https://lastest.cloud produced name, tagline (43/80 chars), a structured description (903/2000), the website URL and a logo - all editable, with Improve / Shorter / Punchier / Story rewrite buttons beside the description. Nothing else on the form had to be typed.
  • Streaks make the community loop concrete
    The Daily streaks page states the goal in one line (comment or upvote three products a day), shows a UTC reset countdown and 0/6 perks unlocked. It reads as a game rule rather than a vague engagement nudge.
  • Analytics exists before the first launch
    Upvotes / views / link clicks / live products are all rendered at zero with an explanatory empty state, so a new maker can see what will be measured before committing to a launch.
Friction points
  • The Premium+ upsell bar sits on top of the Product Name field
    On /dashboard/products/new the floating "Premium+ - $39 one-time / Proceed to payment" strip overlaps the Product Name input and its label (clearly visible in the recording at the Fill-with-AI step). The first required field of your launch form is partly covered by a paywall banner. Giving the strip its own row, or docking it to the bottom, fixes it.
  • Profile is 22% complete even though Google supplied the full name
    The dashboard asks for "your last name and 6 more fields" immediately after a Google sign-in that already returns given_name and family_name. Pre-filling from the OAuth profile would move a new maker from 22% to ~50% before they type anything.
Couldn't reach
  • Launch Product (submit)·Would publish a real listing on your directory - we filled the form and stopped
  • Upgrade / Proceed to payment·Demo runs never reach a paid checkout

3 visual changes

Step 14,076 px changed
Before
Before
After
After
Diff
Diff
Step 5114 px changed
Before
Before
After
After
Diff
Diff
Step 912,059 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.
56,846 test runs recorded · 1,040 products tested with Lastest

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