Recording of the visual regression run on tallyfi.app · TallyFi — app walkthrough.

In this video· click a step to jump to it

T
Passed ✓

Test recording

TallyFi — app walkthrough

71,124 ms · 51,258 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against tallyfi.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, 1400); await new Promise(r => setTimeout(r, 350)); await anim(max, 0, 800); })()";

  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','**/cdn-cgi/scripts/**/cloudflare-static/**','**/sentry-cdn.com/**','**/browser.sentry-cdn.com/**','**/cdn.segment.com/**','**/connect.facebook.net/**']) {
    await page.route(pattern, function (r) { return r.abort(); }).catch(function () {});
  }

  let n = 1;

  // ── Public phase: home (context) ──
+111 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
48.06%
Text
—
DOM
✓
Network
+65 −65
Console
✓
A11y
A
Perf
26 over
URL
✓
Variables
—
Full report
Log in →
51,258
Diff px
1m 11s
Duration
A
Accessible
WCAG 2.2 · 94
C
Fast
Web Vitals · 70

Notes from the demo run

AI-generated

Signing in with Google was a single click that dropped us straight onto a fully-formed /dashboard (Auth.js session, no email-verify gate). The empty state is genuinely good: a 3-step 'get started in 60s' checklist, four headline KPI tiles (Net Worth, Income, Spend, Savings Rate) and Cash Flow / Category / Budget / Recent-Transactions cards all render at $0 before any bank is linked. We baselined the dashboard plus Accounts, Transactions, Cash Flow, Trends, and created a real savings goal and a monthly budget without touching Plaid.

Highlights
  • One-click Google onboarding
    Continue with Google went from click to authenticated /dashboard with zero email/verification friction — the fastest path we tested.
  • Additive flows are safe to automate
    Create Goal (Emergency Fund, $10k target) and New Budget (Advertising & Marketing, $600/mo) both persisted with a clean 'Budget created' toast and live summary — ideal for regression baselines that don't need real bank data.
  • Thoughtful empty state
    Every KPI, chart and list has a purposeful $0 / 'connect a bank' state, so the product looks finished before Plaid is ever linked.
Friction points
  • Turnstile silently disables email signup
    The email 'Create free account' button stayed disabled because the Cloudflare Turnstile (render=explicit) token never populated for our automated browser — a real user on a flagged network/agent could hit the same dead end. Google was the only path that worked.
  • 2 critical a11y flags on the dashboard
    axe-core scored the dashboard 94 with 1-2 critical violations — likely quick contrast/label wins worth a pass.

6 visual changes

Step 6264 px changed
Before
Before
After
After
Diff
Diff
Step 817,877 px changed
Before
Before
After
After
Diff
Diff
Step 93,551 px changed
Before
Before
After
After
Diff
Diff
Step 105,691 px changed
Before
Before
After
After
Diff
Diff
Step 1116,732 px changed
Before
Before
After
After
Diff
Diff
Step 137,143 px changed
Before
Before
After
After
Diff
Diff

Share this run

Earned · Lastest awards

Proof your app is not AI slop

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

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