Recording of the visual regression run on traceio.vercel.app · Trace — app walkthrough.

In this video· click a step to jump to it

T
Passed

Test recording

Trace — app walkthrough

50,351 ms · 75,406 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against traceio.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, s) => screenshotPath.replace('.png', '-' + n + '-' + s + '.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); })()";

  // Rotate the problem so re-runs add a fresh row instead of colliding.
  const POOL = ['valid-parentheses', 'merge-two-sorted-lists', 'best-time-to-buy-and-sell-stock', 'climbing-stairs', 'maximum-subarray', 'contains-duplicate'];
  const PROBLEM = POOL[Date.now() % POOL.length];

  await page.context().setExtraHTTPHeaders({ 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Safari/537.36' });
  const noise = ['**/cdn-cgi/scripts/**/email-decode.min.js', '**/sentry-cdn.com/**', '**/browser.sentry-cdn.com/**', '**/cdn.segment.com/**', '**/connect.facebook.net/**', '**/www.googletagmanager.com/**'];
  for (const pattern of noise) {
    await page.route(pattern, function (r) { return r.abort(); }).catch(function () {});
+93 more lines claim the test to get the full code.

Checks run

Run
Visual
74.20%
Text
DOM
Network
+0 −220
Console
11 new
A11y
A
Perf
URL
66 diverged
Variables
Full report
Log in →
75,406
Diff px
50s
Duration
A
Accessible
WCAG 2.2 · 96
A
Fast
Web Vitals · 100

Notes from the demo run

AI-generated

We created a Trace account and drove the real loop: dashboard, problem library, search, platform and difficulty filters, the Due Today queue, then added a LeetCode problem and watched it land in the schedule. The spaced-repetition model comes through clearly, the dashboard answers 'what do I review today' before it shows you anything else, and the problem detail view is genuinely dense in a good way.

Highlights
  • Add-a-problem is one paste
    Paste a LeetCode URL, hit Next, and Trace resolves the title, difficulty and tags itself and drops it straight into the review schedule. No form to fill. That is the single best thing in the product.
  • Problem detail earns the page
    Recall ratings (Again / Hard / Medium / Easy with intervals), Brute Force vs Optimal code tabs, and structured notes for intuition, complexity, mistakes and interview pitch. It is a study template, not just a record.
  • Dashboard answers one question
    'You have 2 problems due for review today' with Due Today, Memory Score and Total Mastered. A returning user knows what to do in under a second.
Friction points
  • Five of six platforms are labelled Soon
    The Add Problem dialog lists GFG, Codeforces, CodeChef, HackerRank and Other, all tagged Soon, so the only working path is LeetCode. The filter bar above the library offers the same five as real filter options, which sets an expectation the dialog then takes back.
  • Signup form does not submit
    Filling email, name and password on /login and pressing Continue left us on the same screen with no error. The account only got created when we posted to the auth endpoint directly, so the form's submit handler looks like it is swallowing the request.

9 visual changes

Step 12,411 px changed
Before
Before
After
After
Diff
Diff
Step 23,921 px changed
Before
Before
After
After
Diff
Diff
Step 316 px changed
Before
Before
After
After
Diff
Diff
Step 43,921 px changed
Before
Before
After
After
Diff
Diff
Step 53,921 px changed
Before
Before
After
After
Diff
Diff
Step 63,919 px changed
Before
Before
After
After
Diff
Diff
Step 71,217 px changed
Before
Before
After
After
Diff
Diff
Step 81,718 px changed
Before
Before
After
After
Diff
Diff
Step 954,362 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.
56,423 test runs recorded · 962 products tested with Lastest

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