Recording of the visual regression run on app.decodemybio.com · DecodeMyBio — signup bug.

In this video· click a step to jump to it

A
Failed

Test recording

DecodeMyBio — signup bug

29,309 ms · 1,226 pixels changed

We built this regression test for app.decodemybio.com — it's yours to keep, free.

Take this test with you

This is a real Playwright test, recorded against app.decodemybio.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,s)=>screenshotPath.replace('.png','-'+n+'-'+(String(s).replace(/[^a-z0-9]+/gi,'-').replace(/^-|-$/g,'').toLowerCase().slice(0,22)||'view')+'.png');
  const ORIGIN='https://app.decodemybio.com'; let idx=1; const findings=[];
  const cap=async(s)=>{ stepLogger.log('Scenario '+idx+': '+s); await page.screenshot({path:shot(idx,s),fullPage:true}); idx++; };
  await page.goto(ORIGIN+'/',{waitUntil:'domcontentloaded'}).catch(function(){}); await page.waitForTimeout(1800); await cap('home');
  await page.goto(ORIGIN+'/login?mode=signup',{waitUntil:'domcontentloaded'}).catch(function(){}); await page.waitForTimeout(1800); await cap('signup-form');
  await page.locator('#email').fill('viktor.demo'+Date.now().toString(36)+'@lastest.cloud').catch(function(){});
  await page.locator('#password').fill('LdH17xDemo9!').catch(function(){});
  await page.waitForTimeout(400); await cap('signup-filled');
  await page.getByRole('button',{name:/create account/i}).click().catch(function(){});
  await page.waitForTimeout(3500); await cap('after-submit-check-email');
  const r1=await page.goto(ORIGIN+'/dashboard',{waitUntil:'domcontentloaded'}).catch(function(){return null;});
+8 more lines claim the test to get the full code.

Checks run

Run
Visual
1.07%
Text
DOM
Network
+88 −88
Console
A11y
Perf
URL
Variables
Full report
Log in →
1,226
Diff px
29s
Duration
Accessible
A
Fast
Web Vitals · 100

Notes from the demo run

AI-generated

DecodeMyBio turns a 23andMe/AncestryDNA file you already own into sourced, medication-aware pharmacogenomic answers — a thoughtful, well-written landing with strong privacy framing. The blocker is the email auth flow: the Supabase confirm/sign-in link redirects to the marketing apex (decodemybio.com) instead of the app (app.decodemybio.com), so the PKCE code is never exchanged and the session never completes. Email signups silently dead-end on the marketing homepage.

Highlights
  • Trust-first positioning
    Encryption, delete-anytime, and cited evidence (CPIC/ClinVar/gnomAD/FDA) are front-and-center — exactly right for a health-data product.
Friction points
  • Confirm link redirects to the wrong host (launch-blocking)
    The Supabase verify link sets redirect_to=https://decodemybio.com (marketing apex), not app.decodemybio.com. The ?code= lands where nothing exchanges it, so the user stays logged out. Fix: set Supabase Site URL / redirect_to to the app origin and add the code-exchange handler there.
  • Deep links hard-404
    /dashboard and /signup return a stark 404 for anonymous visitors instead of redirecting to sign-in — confusing for anyone arriving from a link.

2 visual changes

Step 3613 px changed
Before
Before
After
After
Diff
Diff
Step 4613 px changed
Before
Before
After
After
Diff
Diff

Share this run

56,331 test runs recorded · 941 products tested with Lastest

This test was built for app.decodemybio.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.