In this video· click a step to jump to it
Test recording
List My MRR — founder dashboard walkthrough
75,764 ms · 3,042 pixels changed
We built this regression test for www.listmymrr.xyz — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against www.listmymrr.xyz. Claim it into your own workspace and re-run it on every deploy — free.
export async function test(page, baseUrl, screenshotPath, stepLogger) {
const STAMP = Date.now().toString(36);
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/**/email-decode.min.js', function (r) { r.abort(); }).catch(function () {});
// ─── 1. Public home ───────────────────────────────────────────────────────
stepLogger.log('Home - the leaderboard pitch');
await page.goto(baseUrl, { waitUntil: 'domcontentloaded' });
await page.waitForLoadState('networkidle', { timeout: 4000 }).catch(function () {});Checks run
Notes from the demo run
AI-generatedWe signed in with Google and walked the founder side of List My MRR the day after you shipped it: dashboard, the listing form, the three leaderboard rankings and the explore directory. The listing flow is the strongest part — six payment providers behind one picker, and the API-key panel tells people exactly how to make a read-only key and that you never store it, before they have to decide whether to trust you. That paragraph is doing the heavy lifting on a page where trust is the whole conversion.
- The API-key ask is handled well"Click here to create a read-only API key · Scroll down and click 'Create key' · Don't change the permissions · Your key is used once to read your revenue totals and is never stored — revoke it in Stripe any time." Numbered, specific, and it pre-answers the objection instead of hoping nobody has it.
- Six providers, not just StripeStripe, LemonSqueezy, Polar, Dodo Payments, Paddle and RevenueCat in the picker. RevenueCat in particular means mobile founders are not locked out on day one.
- Paid placement is explicitly separated from rank"A Featured slot puts your business at the top... pure visibility, not rank manipulation. Your organic MRR ranking stays exactly where it is." On a leaderboard product that sentence is the entire credibility model, and you put it on the dashboard rather than burying it.
- Anonymous mode exists at listing timeLetting a founder publish a number without publishing themselves will get you listings from people who would otherwise never submit.
- Every ranking view is empty, including for a signed-in founderLeaderboard (all three tabs) and Explore both render "No businesses found" / "Showing 0 businesses". That is expected the day after launch, but it means a visitor's first impression of a leaderboard product is an empty leaderboard. Seeding even a handful of verified listings, or showing a "first 10 founders get the top slots" state instead of a null result, would convert far better than the empty table.
- The listing form scrolls inside a fixed cardOn a 1280x720 viewport the Website URL field sits below the card's internal scroll line while the Add startup button stays pinned in view — so the primary CTA is visible before the required field is. Letting the card grow with the page would stop people clicking Add startup on a half-filled form.
- Add startup (submit)·Completing it requires a live Stripe read key — we fill the form and stop there rather than connect real payment credentials.
- /dashboard Upgrade to Pro / Book Featured Slot·Checkout flows; we do not enter them on someone else's product.
Visual change
Share this run
Proof your app is not AI slop
This test was built for www.listmymrr.xyz — 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.


