In this video· click a step to jump to it
Test recording
Peaky Twins — app walkthrough
79,108 ms · 0 pixels changed · matches baseline
We built this regression test for www.peakytwins.com — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against www.peakytwins.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 routeBlock = async (p) => { for (const pat of ['**/cdn-cgi/scripts/**/email-decode.min.js','**/sentry-cdn.com/**','**/browser.sentry-cdn.com/**','**/*.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(){});
await page.locator('h1, main, [role="main"]').first().waitFor({ state: 'visible', timeout: 6000 }).catch(function(){});
await page.getByRole('button', { name: /accept|allow|got it|ok$/i }).first().click({ timeout: 2500 }).catch(function(){});Checks run
Notes from the demo run
AI-generatedPeaky Twins is a partner-based accountability app with a confident neo-brutalist UI (heavy borders, hot-pink CTAs). Onboarding is a 6-step wizard (Profile, Media, How It Works, First Goal, Partner Discovery, Done) with a 'Skip onboarding' escape, and the 'Today' dashboard pulls tasks from your goals and challenges. The sidebar splits cleanly into Today, Goals, Challenges, Partner, Messages, Profile, Settings and Help.
- Partner-based accountability loopThe core hook is pairing with an accountability partner (Partner + Messages tabs) rather than yet another solo habit tracker — a sharper reason to come back daily.
- Zero-states that tell you what to doEvery empty section reads 'No goals found → + CREATE YOUR FIRST GOAL', so a brand-new user always has an obvious next action.
- 6-step onboarding before any valueA new user hits a 6-step wizard (Profile, Media, How-It-Works, First Goal, Partner) before seeing the product. The 'Skip onboarding' button is the right escape hatch — consider defaulting more users straight to the dashboard with inline setup so the first 'aha' comes faster.
Share this run
Proof your app is not AI slop
This test was built for www.peakytwins.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.