Recording of the visual regression run on zeuge.io · Zeuge — app walkthrough.

In this video· click a step to jump to it

Z
Passed ✓

Test recording

Zeuge — app walkthrough

81,624 ms · 112,713 pixels changed

We built this regression test for zeuge.io — it's yours to keep, free.

Take this test with you

This is a real Playwright test, recorded against zeuge.io. 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 + '-' + s + '.png');
  const O = 'https://zeuge.io';
  page.setDefaultTimeout(7000);
  page.setDefaultNavigationTimeout(20000);
  // zeuge has a Firestore long-poll, so networkidle never resolves — use fixed waits only.
  for (const pat of ['**/client.crisp.chat/**','**/widget.intercom.io/**','**/js.stripe.com/**','**/*.sentry.io/**','**/*.ingest.us.sentry.io/**','**/cdn.segment.com/**','**/*.hotjar.com/**','**/googletagmanager.com/**','**/google-analytics.com/**','**/region1.analytics.google.com/**']) {
    await page.route(pat, function(r){ r.abort().catch(function(){}); }).catch(function(){});
  }
  async function dismiss() {
    const sk = page.getByRole('button', { name: new RegExp('get started|dismiss|got it|^close$|skip|maybe later', 'i') }).first();
    if (await sk.isVisible().catch(function(){return false;})) { await sk.click({ timeout: 1500 }).catch(function(){}); await page.waitForTimeout(400); }
+41 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
7.54%
Text
—
DOM
✓
Network
+143 −143
Console
✓
A11y
B
Perf
88 over
URL
11 diverged
Variables
—
Full report
Log in →
112,713
Diff px
1m 22s
Duration
B
Accessible
WCAG 2.2 · 85
C
Fast
Web Vitals · 70

Notes from the demo run

AI-generated

Zeuge is a well-structured workspace for turning family photos into narrated archives. The dashboard leads with a 5-step Getting-Started checklist (create archive, batch, upload, invite contributor, collect responses) and a clear sidebar (Dashboard, Archives, Exports, Notifications, Settings).

Highlights
  • Guided first value
    The Getting-Started checklist (0 of 5 complete) tells a new user exactly what to do to reach the 'aha' — collecting a contributor's story.
  • No-account contributors
    Family/friends narrate photos via a private link with no signup — smart for the non-technical audience.
  • Real export targets
    Exports to IPTC / Lightroom / print-ready photo book make the captured stories portable, not locked in.
Friction points
  • Welcome overlay re-asserts
    The 'Welcome to Zeuge' overlay reappears on /archives and covers the content until dismissed.
  • Create-archive discoverability
    The primary 'Add archive' action opens a dialog that took a moment to surface — the checklist cards look clickable but route differently.

6 visual changes

Step 1105,993 px changed
Before
Before
After
After
Diff
Diff
Step 22,463 px changed
Before
Before
After
After
Diff
Diff
Step 3999 px changed
Before
Before
After
After
Diff
Diff
Step 8845 px changed
Before
Before
After
After
Diff
Diff
Step 9845 px changed
Before
Before
After
After
Diff
Diff
Step 111,568 px changed
Before
Before
After
After
Diff
Diff

Share this run

Earned · Lastest awards

Proof your app is not AI slop

LASTEST
starter
tests
all passing
regressions
0
Badges stay live, ratchet upward, only downgrade on confirmed regression.
57,761 test runs recorded · 1,174 products tested with Lastest

This test was built for zeuge.io — 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.