Recording of the visual regression run on programmerneeds.com · ProgrammerNeeds — app walkthrough.

In this video· click a step to jump to it

P
Passed

Test recording

ProgrammerNeeds — app walkthrough

83,921 ms · 32,164 pixels changed

We built this regression test for programmerneeds.com — it's yours to keep, free.

Take this test with you

This is a real Playwright test, recorded against programmerneeds.com. 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); })()";
  const ctx = page.context();

  page.setDefaultTimeout(12000);
  await ctx.setExtraHTTPHeaders({ 'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36" });
  for (const pattern of ['**/cdn-cgi/scripts/**', '**/*sentry-cdn.com/**', '**/cdn.segment.com/**', '**/connect.facebook.net/**', '**/*.doubleclick.net/**', '**/googletagmanager.com/**']) {
    await page.route(pattern, function (r) { r.abort().catch(function () {}); }).catch(function () {});
  }
+148 more lines claim the test to get the full code.

Checks run

Run
Visual
7.89%
Text
DOM
Network
+209 −220
Console
A11y
A
Perf
URL
231 diverged
Variables
Full report
Log in →
32,164
Diff px
1m 24s
Duration
A
Accessible
WCAG 2.2 · 94
A
Fast
Web Vitals · 100

Notes from the demo run

AI-generated

We signed in to ProgrammerNeeds with Google and drove the maker side of the product: the submission form filled out end to end, the leaderboard's all-time/month/week filters, and directory search. The single-page submit form is the best part — everything a listing needs is on one screen with live character counters and no multi-step wizard, exactly as the landing page promises.

Highlights
  • The submission form keeps its promise
    'One page, one review, no submission fee' is literally true — name, tagline, description, category, pricing, tags, URL, repo, demo video and images are all on one screen with live counters and inline examples.
  • Submission status is shown before you start
    '3 of 3 product slots free / 2 of 2 submissions left today' sits above the form, so a maker knows the quota before investing effort.
  • Signed-in state is unambiguous
    The header swaps to the account email immediately after the OAuth round-trip, with no flash of logged-out UI.
Friction points
  • No email sign-up path at all
    Sign-in is GitHub or Google only. That is fine for a dev directory, but it silently excludes anyone who keeps work and Google accounts separate — an email fallback is usually a cheap add on Supabase.
  • The sticky header floats into the middle of the submit page
    On the long /submit page the nav bar detaches and renders over the form body partway down rather than staying pinned to the viewport top. Visible in the walkthrough recording at the submission step.

3 visual changes

Step 418,694 px changed
Before
Before
After
After
Diff
Diff
Step 68,680 px changed
Before
Before
After
After
Diff
Diff
Step 74,790 px changed
Before
Before
After
After
Diff
Diff

Share this run

Earned · Lastest awards

Proof your app is not AI slop

LASTEST
starter
tests
all passing
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 programmerneeds.com — 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.