Recording of the visual regression run on www.moneyplain.app · Moneyplain — app walkthrough.

In this video· click a step to jump to it

W
Passed ✓

Test recording

Moneyplain — app walkthrough

84,047 ms · 123 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against www.moneyplain.app. 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, slug) => screenshotPath.replace('.png', `-${n}-${slug}.png`);
  const SCROLL_THROUGH = "(async () => { const ease = t => 1 - Math.pow(1 - t, 3); const max = Math.max(0, document.body.scrollHeight - window.innerHeight); if (max < 40) return; const anim = (a, b, ms) => new Promise(res => { const t0 = performance.now(); const step = now => { const p = Math.min(1, (now - t0) / ms); window.scrollTo(0, a + (b - a) * ease(p)); p < 1 ? requestAnimationFrame(step) : res(); }; requestAnimationFrame(step); }); await anim(0, max, 1300); await new Promise(r => setTimeout(r, 300)); await anim(max, 0, 700); })()";

  await page.context().setExtraHTTPHeaders({ 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36' });
  for (const pattern of ['**/cdn-cgi/scripts/**/email-decode.min.js', '**/sentry-cdn.com/**', '**/browser.sentry-cdn.com/**', '**/cdn.segment.com/**', '**/connect.facebook.net/**', '**/www.googletagmanager.com/**']) {
    await page.route(pattern, function (r) { r.abort(); }).catch(function () {});
  }

  // ── 1. Member desk (session replayed via setupOverrides storage_state)
  stepLogger.log('Scenario 1: member dashboard');
  await page.goto(baseUrl + '/dashboard', { waitUntil: 'domcontentloaded' });
+97 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
0.01%
Text
—
DOM
✓
Network
+24 −24
Console
✓
A11y
A
Perf
✓
URL
✓
Variables
—
Full report
Log in →
123
Diff px
1m 24s
Duration
A
Accessible
WCAG 2.2 · 100
A
Fast
Web Vitals · 100

Notes from the demo run

AI-generated

We created a free Moneyplain account and drove the whole member desk: dashboard, daily market report, momentum data, research agent, community and account, then put real numbers through the compound-interest calculator and answered the risk-profile quiz. The typography-led, editorial design is the most distinctive thing about it - it reads like a finance magazine rather than a dashboard, and the FREE LESSONS / NO PRODUCTS SOLD / NOT ADVICE line in the footer is doing a lot of trust work.

Highlights
  • Signup to signed-in workspace with zero friction
    Name, email, password, Create account - and you land straight on /dashboard as a FREE MEMBER. No email verification, no onboarding wizard, no credit card. For an education product where the goal is to get someone reading lesson one, that is exactly right.
  • The free tier is real, not a teaser
    Eleven lessons, eight calculators and the market board stay open with no upgrade prompt in the way. The Pro services show a genuine preview of the content rather than a blank paywall, so a free member can see what they would be buying.
  • The calculators respond instantly and in plain language
    Dragging the starting amount from $5,000 to $64,000 updates the projection live, and the Nominal / Today's money toggle is a smarter default than most retirement calculators offer. The risk quiz explains why each question matters underneath it.
Friction points
  • Lesson progress is saved in the browser, not to the account
    The dashboard says Progress is saved in this browser under LESSON PROGRESS 0/11 - even though we were signed in. Someone who does three lessons on a laptop and opens the site on their phone will silently start from zero, which undercuts the main reason to create an account in the first place.
  • Sign up with Google is styled differently from the email form it sits above
    The Google button reads Sign up with Google on /signup but Continue with Google on /login. Matching the two labels is cosmetic, but on an auth screen inconsistent wording is the kind of thing that makes people pause.
Couldn't reach
  • /pricing checkout·Paid upgrade flow - deliberately not exercised

Visual change

Step 9123 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
a11y
WCAG AA
regressions
0
Badges stay live, ratchet upward, only downgrade on confirmed regression.
57,226 test runs recorded · 1,151 products tested with Lastest

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