In this video· click a step to jump to it
Test recording
floorable — app walkthrough
103,262 ms · 0 pixels changed · matches baseline
We built this regression test for floorable.app — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against floorable.app. Claim it into your own workspace and re-run it on every deploy — free.
export async function test(page, baseUrl, screenshotPath, stepLogger) {
const AUTH_AUTOMATABLE = true;
const CHAINED_AUTH = false;
const DEMO_EMAIL = '[email protected]';
const DEMO_PASSWORD = '•••';
const shot = (n, slug) => screenshotPath.replace('.png', `-${n}-${slug}.png`);
const settle = () => page.waitForLoadState('networkidle').catch(() => {});
stepLogger.log('Scenario 1: Homepage');
await page.goto(baseUrl, { waitUntil: 'domcontentloaded' });Checks run
Notes from the demo run
AI-generatedFloorable leads with a confident enterprise tagline ("Enterprise Indoor Mapping & Wayfinding: One Platform. Every Surface. No Hardware."). The marketing site is unusually substantial for an indie launch, with six dedicated vertical pages (Healthcare, Retail, Education, Airports, Industrial, Corporate) each individually written, seven /alternatives/* comparison pages, and a clean split-screen signup. Pricing transparency stood out: numeric outcome headlines instead of "contact sales" gating.
- Per-vertical use-case pagesSix verticals, each authored individually rather than templated. The Education page especially well-written: 5 numbered scenarios tied to real institutional pain.
- vs-X alternatives pages/alternatives/mappedin/, /alternatives/esri/, /alternatives/matterport/, +4 more. Strong SEO play for high-intent prospects comparing against incumbents. Textbook indie playbook done well.
- Pricing transparencyNumeric outcome headlines (53% reduction, 30min onboarding) tied to operations, not a vague "contact sales" tier.
- /onboarding route returns hard 404Floorable returns its static 404 page for GET /onboarding, but Supabase email-verification links redirect there (redirect_to=https://floorable.app/onboarding in the verify URL). Confirmed by GET https://floorable.app/onboarding → 404 "Page Not Found (404) | Floorable". Result: even a user whose verify token IS accepted lands on a dead end immediately after clicking the link in their email.
- Email-verification token rejected as otp_expired within minutesVerify token issued during signup at 14:47 UTC was rejected at 14:53 UTC (6 minutes later) with error_code=otp_expired, error_description="Email link is invalid or has expired". Either the OTP TTL is set extremely short, or the token has single-use semantics and was consumed by a mail-provider link-prefetcher (a common cause of "expired immediately" complaints on Supabase Auth). Worth checking the supabase.auth_settings.email_verify_token_ttl and whether the mail relay is HEAD-fetching links.
- Signup form needs slow typingCalling Playwright .fill() on the three signup inputs sets the DOM .value but does not update React state — Submit then silently no-ops with no visible error. Using pressSequentially (slow typed keystrokes) fixes it. This is a common pitfall with controlled inputs in React/Vite SaaS templates, and means automated test suites / accessibility tools / bots will silently hang on the form unless they do real keyboard simulation.
- /onboarding (authed)·Supabase verify-email links redirect here; the route returns 404. No way to land on an authenticated dashboard without it.
Share this run
Proof your app is not AI slop
This test was built for floorable.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.