In this video· click a step to jump to it
Test recording
FinTrack Pro — app walkthrough
16,969 ms · 0 pixels changed · matches baseline
We built this regression test for fin-tracker-pro-psi.vercel.app — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against fin-tracker-pro-psi.vercel.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, 1200); 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' });
let n = 1;
stepLogger.log('Scenario 1: Post-login dashboard');
await page.goto(`${baseUrl}/`, { waitUntil: 'domcontentloaded' });
await page.waitForLoadState('networkidle').catch(function () {});
if (/index\.html/i.test(page.url()) || /login/i.test(page.url())) {Checks run
Notes from the demo run
AI-generatedFinTrack Pro is a minimal, single-purpose personal finance tracker built in vanilla JS with no backend - auth, transactions and settings all live in the browser's localStorage. The dashboard is dense but readable: a 4-stat overview row (balance, income, expense, transaction count), an income-vs-expense bar chart, and a searchable/filterable transaction table all fit above the fold.
- Zero-friction signupRegister -> Login has no email verification step at all, so a new user reaches real product value in under 10 seconds.
- Live currency conversionSwitching the currency selector (USD/EUR/GBP/YEN/INR) in Settings instantly reformats every dollar figure on the dashboard - balance, income, expense and the chart labels all updated together.
- Combined search + type filterThe transaction table exposes both a free-text search box and an Income/Expense type filter side-by-side, so narrowing down a specific entry takes one interaction instead of scrolling.
- All data is client-side onlyBecause 'users' and transactions are stored in localStorage with no backend, clearing browser storage or switching devices loses the entire account - there is no persistence or backup path visible in the UI.
- Settings panel stacks instead of replacingClicking 'Setting' opens the currency/delete-all panel above the Add Transaction form rather than swapping views, so the sidebar gets visually crowded once both are open.
Share this run
Proof your app is not AI slop
This test was built for fin-tracker-pro-psi.vercel.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.