Recording of the visual regression run on www.rinse.com · rinse-demo — app walkthrough.

In this video· click a step to jump to it

W
Failed

Test recording

rinse-demo — app walkthrough

21,099 ms · 13,968 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against www.rinse.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 SLUG = "rinse";
  const DEMO_EMAIL = `viktor+${SLUG}${STAMP}@lastest.cloud`;
  const DEMO_PASSWORD = `•••`;
  const DEMO_NAME = 'Lastest Demo';
  const SIGNUP_PATH = "/signup";
  const BUSINESS = null;

  const shot = (n, sl) => screenshotPath.replace('.png', `-${n}-${sl}.png`);
  const settle = () => page.waitForLoadState('networkidle').catch(() => {});
+245 more lines — claim the test to get the full code.

Checks run

Run
✕
Visual
0.68%
Text
—
DOM
✓
Network
+0 −24
Console
✓
A11y
—
Perf
96 over
URL
✓
Variables
—
Full report
Log in →
13,968
Diff px
21s
Duration
—
Accessible
C
Fast
Web Vitals · 70

Notes from the demo run

AI-generated

Rinse's signup is a 3-step wizard: account (first/last/phone/email/password) → schedule (pickup window) → address (Google Maps autocomplete). Account is created at step-1 submit; rinse_authenticated_user cookie is set, kustomer_jwt is provisioned, and re-visiting /accounts/login/ correctly routes back into the in-progress wizard. Authed surface walked from a captured mid-wizard session.

Highlights
  • Phone-uniqueness pre-check
    Step 1 rejects duplicate phone numbers in real-time ('An account with this phone number already exists.') — saves the user from finishing the wizard only to be told at the end.
  • Wizard state preserved in localStorage
    signup-firstName / signup-email / signup-phoneNumber / signup-pickupDate all written to localStorage as the user types — leave-and-return resume works without losing progress.
Friction points
  • /customers/signup/ is marketing not form
    The /customers/signup/ link from the login page is a marketing landing about the Rinse service — no form. The real signup is reached via 'Sign up with email' → /customers/signup/account. One extra click visitors don't expect.
  • Address step uses Google Maps autocomplete only
    Step 3 has no plain address text inputs — only a Maps autocomplete component. Visitors with addresses Google Maps doesn't recognize cleanly (rural, new construction, suite numbers) hit friction.

2 visual changes

Step 147 px changed
Before
Before
After
After
Diff
Diff
Step 213,921 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,604 test runs recorded · 1,174 products tested with Lastest

This test was built for www.rinse.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.