Recording of the visual regression run on www.thinstep.app · Thinstep — app walkthrough (authenticated).

In this video· click a step to jump to it

W
Passed ✓

Test recording

Thinstep — app walkthrough (authenticated)

160,669 ms · 151,294 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against www.thinstep.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' });
  for (const pattern of ['**/cdn-cgi/scripts/**/email-decode.min.js', '**/browser.sentry-cdn.com/**', '**/cdn.segment.com/**', '**/connect.facebook.net/**', '**/www.googletagmanager.com/**']) {
    await page.route(pattern, function (r) { r.abort(); }).catch(function () {});
  }

  // ---- 1. Today dashboard: five life scores + the one named thin spot
  stepLogger.log('1: Today dashboard (five colors + thin spot)');
  await page.goto(baseUrl + '/dashboard', { waitUntil: 'domcontentloaded' });
+93 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
16.46%
Text
—
DOM
✓
Network
+150 −120
Console
✓
A11y
A
Perf
600 over
URL
40 diverged
Variables
—
Full report
Log in →
151,294
Diff px
2m 41s
Duration
A
Accessible
WCAG 2.2 · 95
Review
Fast
Web Vitals

Notes from the demo run

AI-generated

We created a free Thinstep account, confirmed the email, took the full five-domain assessment, and then drove ten authenticated surfaces: Today, Goals, Actions, Check-in, Settings, Plans, and back to Today. Along the way we planted a real goal, added our own tiny action, and logged a check-in, so the last frame of the recording is your dashboard carrying data a real user would have created. The tone is the strongest thing here — 'How is life, this week?', 'Drag the bar to the weather that matches', 'There are no wrong answers' — the whole app reads like it was written by one person who meant it, which is rare for a scoring product.

Highlights
  • The assessment is the onboarding
    Five domains, four sliders each, a running 'Physical · 1 of 5 / 0% done' progress rail, then the CTA flips from 'Keep going' to 'Show me my focus'. No separate tour, no empty dashboard — you earn the dashboard by filling it.
  • One focus, not a wall of metrics
    The Today page names exactly one area and one 20-minute action with an effort estimate ('20 min · easy · feels like a 7/10 lift'). Most wellbeing dashboards dump five charts and leave the prioritising to the user.
  • Free tier is genuinely the product
    Scores, goals, actions and check-ins all work on Free — Pro adds the assistant. The plans page says that plainly instead of hiding it behind a comparison table.
Friction points
  • Identical scores across all five colours read as broken
    Our run produced 88 / 88 / 88 / 88 / 88 and the focus copy still said 'it feels unknown'. When every bar lands on the same number the dashboard looks like it failed to compute rather than like a balanced week — a tie-break or a 'your week is unusually even' line would fix the read.
  • A planted goal shows '0/0' steps with no way to add one from Today
    After planting a goal the Your path panel says 'No steps yet — add your own path if you want one' and links back to Goals. An inline 'add a first step' on Today would close the loop at the moment intent is highest.
Couldn't reach
  • /coach·Pro-gated — shows a 'Peek at Pro' upsell rather than product surface
  • Polar checkout·We never walk into a paid checkout on a founder's own product

8 visual changes

Step 116,058 px changed
Before
Before
After
After
Diff
Diff
Step 213,016 px changed
Before
Before
After
After
Diff
Diff
Step 316,876 px changed
Before
Before
After
After
Diff
Diff
Step 425,618 px changed
Before
Before
After
After
Diff
Diff
Step 541,212 px changed
Before
Before
After
After
Diff
Diff
Step 611,616 px changed
Before
Before
After
After
Diff
Diff
Step 710,884 px changed
Before
Before
After
After
Diff
Diff
Step 1016,014 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,226 test runs recorded · 1,151 products tested with Lastest

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