Recording of the visual regression run on levelup-tracker-app.vercel.app · LevelUp — app walkthrough.

In this video· click a step to jump to it

L
Passed ✓

Test recording

LevelUp — app walkthrough

35,017 ms · 295,583 pixels changed

We built this regression test for levelup-tracker-app.vercel.app — it's yours to keep, free.

Take this test with you

This is a real Playwright test, recorded against levelup-tracker-app.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 EMAIL = '[email protected]';
  const PW = 'LevelUpLDp26!';
  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, 250)); 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' });

  const settle = async function () {
    await page.waitForLoadState('domcontentloaded').catch(function () {});
    await page.waitForLoadState('networkidle', { timeout: 3000 }).catch(function () {});
    await page.locator('h1, h2, main').first().waitFor({ state: 'visible', timeout: 5000 }).catch(function () {});
+92 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
15.26%
Text
—
DOM
✓
Network
+10 −10
Console
✓
A11y
A
Perf
✓
URL
✓
Variables
—
Full report
Log in →
295,583
Diff px
35s
Duration
A
Accessible
WCAG 2.2 · 91
A
Fast
Web Vitals · 100

Notes from the demo run

AI-generated

LevelUp turns habit tracking into an RPG: a clean dark dashboard with an XP/level bar, a weekly check-in chart, a global leaderboard, and a fast create-habit modal where category, difficulty and frequency each map to an XP reward. The game loop is legible within seconds of signing in.

Highlights
  • XP loop is legible instantly
    Creating a habit assigns XP by difficulty (Medium = +25 XP) and tags it by category, so a new user understands the reward mechanic on their very first habit, no tutorial needed.
  • Live leaderboard on the dashboard
    The dashboard surfaces a global leaderboard (Adebare #1, 985 XP, Lvl 10) right under your stats, adding social pull to what is otherwise a solo tracker.
Friction points
  • /auth and /dashboard 404 on direct load
    Direct navigation (or a refresh/bookmark) to /auth or /dashboard returns a Vercel 404. There is no SPA catch-all rewrite, so any shared or bookmarked in-app link breaks. A one-line vercel.json rewrite of all paths to index.html fixes it.
  • Session does not auto-resume
    The app stores a JWT in localStorage, but landing on / still shows the marketing page with a Log In button rather than resuming the session, so returning users have to log in again.

8 visual changes

Step 310,345 px changed
Before
Before
After
After
Diff
Diff
Step 413,611 px changed
Before
Before
After
After
Diff
Diff
Step 513,765 px changed
Before
Before
After
After
Diff
Diff
Step 663,082 px changed
Before
Before
After
After
Diff
Diff
Step 791,574 px changed
Before
Before
After
After
Diff
Diff
Step 887,792 px changed
Before
Before
After
After
Diff
Diff
Step 97,707 px changed
Before
Before
After
After
Diff
Diff
Step 107,707 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,604 test runs recorded · 1,174 products tested with Lastest

This test was built for levelup-tracker-app.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.