In this video· click a step to jump to it
Test recording
Fivemetrics — app walkthrough
86,375 ms · 75 pixels changed
We built this regression test for app.fivemetrics.io — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against app.fivemetrics.io. 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 UA = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36';
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, 1100); await new Promise(r => setTimeout(r, 250)); await anim(max, 0, 600); })()";
await page.context().setExtraHTTPHeaders({ 'User-Agent': UA });
for (const pattern of ['**/cdn-cgi/scripts/**/email-decode.min.js', '**/sentry-cdn.com/**', '**/cdn.segment.com/**', '**/connect.facebook.net/**', '**/*posthog*/**', '**/www.googletagmanager.com/**']) {
await page.route(pattern, function (r) { r.abort(); }).catch(function () {});
}
// ─── Scenario 1: AUTHED workspace overview ──────────────────────────────
stepLogger.log('Scenario 1: Authed dashboard overview');Checks run
Notes from the demo run
AI-generatedWe created a Fivemetrics workspace and then drove the whole authenticated shell: Budgets with all five analysis views, every settings scope, and the cost-source picker. The onboarding is the best-judged part — four labelled steps, a 'read-only by default' promise repeated at each one, and the honest 'available now / coming soon' split on the source list. The thing that stops the demo short is that the product is almost entirely gated until a cloud account is actually connected, so an evaluator who cannot paste a real AWS role sees a shell rather than a dashboard.
- Honest source listThe picker splits 9 sources under AVAILABLE NOW from 13 under COMING SOON, and Azure is explicitly marked 'Coming' next to AWS 'Active'. Most cost tools list every logo as if it ships today.
- Budgets is fully built before any data existsConsumption, Forecast, Allocation, Unit economics and Alerts all render with their own first-run explainers. The empty state teaches the model (scope + envelope + alert) instead of just saying 'no data'.
- Settings is indexed, not a dumpTen scopes numbered 01-10 with a one-line purpose each. Easier to scan than the usual flat settings page.
- Read-only framing is repeated, not buried'Read-only by default' and 'Secured with a unique key' appear on the welcome step and again on the source picker — the right place for the objection a FinOps buyer actually has.
- Team settings says 'No valid workspace found' right after creating oneWe named a workspace in onboarding, reached /dashboard, then Settings > Workspace > Team rendered 'No valid workspace found.' The workspace clearly exists (the dashboard shell loads). Looks like the Team panel reads a workspace id the onboarding path never sets.
- The whole left nav is locked until an integration existsVolt AI, To handle, Security & Compliance, Optimization and Reports are all padlocked and inert on a fresh workspace, and 'Add an integration' is disabled from the Overview empty state. A sample/demo workspace behind one click would let an evaluator see what they are buying before they hand over a cloud role.
- /onboarding/connect-cloud (deploy step)·Requires a real AWS role or provider API key; we never submit third-party credentials on a founder's behalf
3 visual changes
Share this run
Proof your app is not AI slop
This test was built for app.fivemetrics.io — 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.








