In this video· click a step to jump to it
S
Passed ✓
Test recording
seo.bike — app walkthrough
71,827 ms · 29,376 pixels changed
We built this regression test for seo.bike — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against seo.bike. 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, 900); await new Promise(r => setTimeout(r, 250)); await anim(max, 0, 500); })()";
stepLogger.log('Scenario 1: Homepage');
await page.goto(baseUrl, { waitUntil: 'domcontentloaded' });
const accept = page.getByRole('button', { name: /accept|allow|got it|ok$/i }).first();
if (await accept.isVisible().catch(function () { return false; })) { await accept.click().catch(function () {}); }
await page.waitForTimeout(1600);
await page.evaluate(SCROLL_THROUGH).catch(function () {});
await page.screenshot({ path: shot(1, 'home'), fullPage: true });
Checks run
29,376
Diff px
1m 12s
Duration
A
Accessible
WCAG 2.2 · 93
A
Fast
Web Vitals · 100
Notes from the demo run
AI-generatedseo.bike's authed workspace is a clean SEO/GEO command center: a 0/4 'Get started' checklist, live counters (connected sites, audits, critical issues, chatbots), a Free-plan API token ready to copy, and a genuinely useful on-page SEO Checker that fetches and scores any live URL in seconds.
Highlights
- Free tool is the hookThe on-page SEO Checker runs a real crawl-and-score on any URL with no signup - we ran it on stripe.com and it fetched and analyzed the live page in seconds.
- API token on the free planThe dashboard exposes a working API token even on the Free plan, so developers can wire the tools into CI or a CMS before upgrading.
Friction points
- Continue-with-Google bounces to /loginGoogle sign-in completes the consent screen but returns to /login without creating a session; we fell back to email+password. Worth checking the /login/google/callback handler - it may be silently dropping new signups.
- Verify step is ambiguousAfter signup you land on /verify for a 6-digit code, yet the nav already shows 'Account / Logout', which makes it unclear whether you're already signed in.
7 visual changes
Share this run
Earned · Lastest awards
Proof your app is not AI slop
Badges stay live, ratchet upward, only downgrade on confirmed regression.
57,421 test runs recorded · 1,174 products tested with Lastest
This test was built for seo.bike — 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.




















