Recording of the visual regression run on www.whatsthe.app · what's the app — app walkthrough.

In this video· click a step to jump to it

W
Passed ✓

Test recording

what's the app — app walkthrough

74,005 ms · 11,524 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against www.whatsthe.app. 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, s) => screenshotPath.replace('.png', '-' + n + '-' + s + '.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, 1300); await new Promise(r => setTimeout(r, 300)); await anim(max, 0, 700); })()";

  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) { return r.abort(); }).catch(function () {});
  await page.route('**/*sentry-cdn.com/**', function (r) { return r.abort(); }).catch(function () {});

  let postLoginActions = 0;

  // --- 1. Buyer inbox (authenticated landing) -------------------------------
  stepLogger.log('Buyer inbox (authenticated landing)');
+107 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
13.13%
Text
—
DOM
✓
Network
+910 −910
Console
✓
A11y
A
Perf
310 over
URL
✓
Variables
—
Full report
Log in →
11,524
Diff px
1m 14s
Duration
A
Accessible
WCAG 2.2 · 92
C
Fast
Web Vitals · 70

Notes from the demo run

AI-generated

We signed in with Google and drove both sides of the marketplace: the buyer inbox, the 596-listing apps-for-sale grid with search and category filters, completing and saving a buyer profile, the acquisition pipeline, the founder chatrooms with their MRR bands, and the seller-mode switch. Putting verified MRR, 28-day revenue and a revenue multiple on the card itself - before any NDA or intro call - is the thing that makes this feel different from the usual app-flipping listings.

Highlights
  • Verified metrics are on the card, not behind a gate
    Price, 28-day revenue, MRR and the revenue multiple all render on the listing tile. A buyer can triage 596 apps without messaging a single seller.
  • One account, two sides
    The Buyer/Seller toggle switches the whole dashboard without a second login or a separate profile. Saving the buyer profile confirmed with a clear 'Profile updated - your profile changes are live' toast.
Friction points
  • The buyer checklist contradicts itself
    'Buy an app faster - 3/4 done' sits directly above two outstanding items, 'Verify email' and 'Add company name'. With Google sign-in the email is already verified, so the count and the list disagree and the checklist reads as broken rather than motivating.
  • The Acquire tab has no loading skeleton
    /dashboard?tab=acquire renders bare 'Loading apps...' text - still there 2.6s in on our run. Everywhere else you show real cards, so this one screen reads as if it failed. A skeleton row would match the rest of the app.

4 visual changes

Step 17,397 px changed
Before
Before
After
After
Diff
Diff
Step 2337 px changed
Before
Before
After
After
Diff
Diff
Step 31,182 px changed
Before
Before
After
After
Diff
Diff
Step 52,608 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,226 test runs recorded · 1,151 products tested with Lastest

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