Recording of the visual regression run on www.fuelytics.app · Fuelytics — app walkthrough.

In this video· click a step to jump to it

W
Passed ✓

Test recording

Fuelytics — app walkthrough

162,240 ms · 847,555 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against www.fuelytics.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 settle = () => page.waitForLoadState('networkidle').catch(function () {});
  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); })()";

  // EB Chromium bootstrap.
  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',
    '**/sentry-cdn.com/**',
    '**/browser.sentry-cdn.com/**',
    '**/cdn.segment.com/**',
+169 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
100.00%
Text
—
DOM
✓
Network
+108 −108
Console
12 new
A11y
C
Perf
24 over
URL
✓
Variables
—
Full report
Log in →
847,555
Diff px
2m 42s
Duration
C
Accessible
WCAG 2.2 · 70
B
Fast
Web Vitals · 85

Notes from the demo run

AI-generated

Fuelytics is a clean, purpose-built fuel and vehicle-cost tracker with a distinctive hand-lettered wordmark and warm cream/maroon palette that stands out from the generic SaaS-blue norm. The sign-in widget offers four auth modes (Google, password, email link, SMS code) on one screen, and post-login the app organizes everything around 'groups' (shared fleets with owner/contributor/viewer roles) containing vehicles and fill-ups. The core loop -- log a fill-up, see MPG and cost/mile recompute live on the dashboard -- works end-to-end and updates the dashboard stat cards in real time (the UI even shows a small 'live' indicator on the activity feed).

Highlights
  • Real-time computed stats
    Logging a fill-up immediately recalculates Miles driven (YTD), Average MPG, Fuel spend (YTD), and cost/mile on the dashboard without a page refresh -- the numbers visibly updated from 350mi/34.3mpg/$35.60 to 1,130mi/56.5mpg/$70.78 after the second fill-up in the same session.
  • Manual entry is fully supported alongside photo capture
    Founder's tweet emphasized 'snap the pump, snap the odometer' AI capture, but the app also ships a complete manual Log Fill-up form (odometer, price/gal, gallons, auto-computed total, fuel grade, optional station) -- a good fallback for users who don't want to grant camera/photo permissions.
  • Thoughtful privacy policy
    The privacy policy explicitly states fill-up photos sent to Anthropic's Claude API for OCR are never stored (processed in passing, discarded), and documents per-vehicle opt-in/opt-out for location and photo capture -- unusually transparent for an indie tool.
Friction points
  • Firebase App Check blocks fresh sign-up/sign-in from automated browsers
    Both the password registration flow and the password sign-in flow returned 'Firebase: Error (auth/firebase-app-check-token-is-invalid)' when driven from the Lastest EB pod's Chromium fingerprint. This is very likely reCAPTCHA Enterprise/v3 App Check attestation failing on non-human-scored sessions -- worth knowing if any legitimate users are behind corporate proxies, privacy browsers, or ad-blockers that interfere with reCAPTCHA scoring, since they'd hit the same wall.
  • Filtering fill-ups by vehicle briefly showed a stale 'no vehicles' render on Events
    Navigating from the Fill-ups filter to the Events tab momentarily rendered 'You don't have access to any vehicles yet' before settling -- looked like a client-side vehicle-context race on tab switch rather than a real access issue, since Vehicles/Fill-ups both showed the vehicle correctly seconds before and after.

9 visual changes

Step 126,802 px changed
Before
Before
After
After
Diff
Diff
Step 319,951 px changed
Before
Before
After
After
Diff
Diff
Step 429,080 px changed
Before
Before
After
After
Diff
Diff
Step 54,307 px changed
Before
Before
After
After
Diff
Diff
Step 6677,029 px changed
Before
Before
After
After
Diff
Diff
Step 75,262 px changed
Before
Before
After
After
Diff
Diff
Step 829,344 px changed
Before
Before
After
After
Diff
Diff
Step 929,344 px changed
Before
Before
After
After
Diff
Diff
Step 1226,436 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,311 test runs recorded · 1,174 products tested with Lastest

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