Recording of the visual regression run on app.fivemetrics.io · Fivemetrics — app walkthrough.

In this video· click a step to jump to it

A
Passed ✓

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');
+91 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
0.14%
Text
—
DOM
✓
Network
+13 −13
Console
✓
A11y
A
Perf
117 over
URL
✓
Variables
—
Full report
Log in →
75
Diff px
1m 26s
Duration
A
Accessible
WCAG 2.2 · 98
C
Fast
Web Vitals · 70

Notes from the demo run

AI-generated

We 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.

Highlights
  • Honest source list
    The 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 exists
    Consumption, 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 dump
    Ten 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.
Friction points
  • Team settings says 'No valid workspace found' right after creating one
    We 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 exists
    Volt 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.
Couldn't reach
  • /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

Step 716 px changed
Before
Before
After
After
Diff
Diff
Step 112 px changed
Before
Before
After
After
Diff
Diff
Step 1357 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
regressions
0
Badges stay live, ratchet upward, only downgrade on confirmed regression.
57,275 test runs recorded · 1,164 products tested with Lastest

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.