In this video· click a step to jump to it
Test recording
LabToAction — app walkthrough
82,215 ms · 478 pixels changed
We built this regression test for www.labtoaction.com — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against www.labtoaction.com. 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 DEMO_EMAIL = `viktor+labtoaction${STAMP}@lastest.cloud`;
const DEMO_PASSWORD = `•••`;
const DEMO_FIRST = 'Lastest';
const DEMO_LAST = 'Demo';
const shot = (n, slug) => screenshotPath.replace('.png', `-${n}-${slug}.png`);
const settle = () => page.waitForLoadState('networkidle').catch(() => {});
const isAuthPath = (u) => /\/(sign-up|sign-in|signup|signin|register|login)(\/|$)/i.test(new URL(u).pathname);
// ─── PUBLIC PHASE ─────────────────────────────────────────────────────────Checks run
Notes from the demo run
AI-generatedLabToAction is a Vercel-hosted Next.js SaaS that translates blood reports into plain-language summaries (any language). The marketing site is crafted: serif 'Privacy Policy' typography, $5-for-5-reports framing instead of subscription-first, and an unusually detailed Privacy Policy that names every third-party processor (Clerk auth, Neon Postgres, Cloudflare R2 storage, Dodo Payments, OpenAI for analysis, Railway hosting, Vercel CDN). Auth is Clerk; signup is captcha-gated.
- Honest pricing framingTop-of-page CTA is 'Try it — $5 for 5 reports', not 'Start free trial'. The trust-and-pay-once-then-decide pattern is rare for health-adjacent SaaS.
- Privacy Policy actually lists every processorClerk, Neon, Cloudflare R2, Dodo Payments, OpenAI, Railway, Vercel — each with role and a verifiable link to their data-processor policy. Most indie health tools handwave this.
- Plain-language hero promise'Not a doctor. Just a translator for your blood report' sets exact expectations and avoids medical-advice over-promise — important for liability and trust.
- Clerk CAPTCHA fails to load in headless browsersSubmitting the signup form surfaced an in-form error: 'The CAPTCHA failed to load. This may be due to an unsupported browser or a browser extension. Please try a different browser...'. Real users on minimal Chromium / privacy-extension stacks (uBlock Origin, Brave shields) will hit the same wall and bounce. Worth checking Clerk's Turnstile integration mode.
- Footer and header CTAs are inconsistentHeader shows 'Get started' (dark pill), footer's primary CTA is 'Get 5 credits' (button text). Same destination, but the inconsistency makes users hesitate.
- Only 2 product surfaces visible without authMarketing site is single-page with /privacy, /terms, /refund-policy as the only nav routes. Visitors who want to evaluate before paying have nothing to look at beyond the hero — consider a sample-report page or a public anonymised demo report.
- /dashboard (post-signup)·Clerk Turnstile blocked signup completion in headless mode
Visual change
Share this run
Proof your app is not AI slop
This test was built for www.labtoaction.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.


