Recording of the visual regression run on app.serpex.dev · Serpex — app walkthrough.

In this video· click a step to jump to it

A
Passed ✓

Test recording

Serpex — app walkthrough

30,715 ms · 220,098 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against app.serpex.dev. 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, 1300); 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' });
  await page.route('**/cdn-cgi/scripts/**', function (r) { return r.abort(); }).catch(function () {});
  await page.route('**/*sentry-cdn.com/**', function (r) { return r.abort(); }).catch(function () {});
  await page.route('**/connect.facebook.net/**', function (r) { return r.abort(); }).catch(function () {});

  let postLoginActions = 0;

  // --- 1. Authenticated dashboard -----------------------------------------
+118 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
87.16%
Text
—
DOM
✓
Network
+77 −132
Console
✓
A11y
A
Perf
22 drift
URL
44 diverged
Variables
—
Full report
Log in →
220,098
Diff px
31s
Duration
A
Accessible
WCAG 2.2 · 91
A
Fast
Web Vitals · 100

Notes from the demo run

AI-generated

Your dashboard reads like an API product should: credits, keys, request volume and success rate as four tiles, then straight into the playground. We signed in with Google, generated a key, ran a live search and got a 10-result JSON payload back in under two seconds, all without touching a credit card. The 200 free credits on signup are doing a lot of work here.

Highlights
  • Time-to-first-request is genuinely short
    Google sign-in to a real search response took four clicks and one keystroke. Most search APIs make you read docs and paste a key into curl before you see a single result.
  • Five copy-paste integrations in the playground
    Python SDK, JS SDK, raw Python, raw JavaScript and cURL all sit under the response, pre-filled with the query you just ran. That is the right place for them.
Friction points
  • The playground tells you to click a button that is not there
    The empty response panel reads 'Enter a query and click "Send Request"', but no Send Request button renders. Enter in the query field is the only way to fire a request, and nothing on screen says so. Either render the button or change the copy to 'press Enter'.
  • No settled state after a request fires
    Between pressing Enter and the JSON arriving, the panel still says 'No Response Yet' with only a small spinner in the submit affordance. Our first capture landed there. A skeleton or an explicit 'Searching...' state would read better to a human too.

5 visual changes

Step 16,964 px changed
Before
Before
After
After
Diff
Diff
Step 5212,190 px changed
Before
Before
After
After
Diff
Diff
Step 6279 px changed
Before
Before
After
After
Diff
Diff
Step 7279 px changed
Before
Before
After
After
Diff
Diff
Step 9386 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 app.serpex.dev — 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.