In this video· click a step to jump to it
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) ──Checks run
Notes from the demo run
AI-generatedSigning 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.
- One-click Google onboardingContinue with Google went from click to authenticated /dashboard with zero email/verification friction — the fastest path we tested.
- Additive flows are safe to automateCreate 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 stateEvery KPI, chart and list has a purposeful $0 / 'connect a bank' state, so the product looks finished before Plaid is ever linked.
- Turnstile silently disables email signupThe 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 dashboardaxe-core scored the dashboard 94 with 1-2 critical violations — likely quick contrast/label wins worth a pass.
6 visual changes
Share this run
Proof your app is not AI slop
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.

















