Recording of the visual regression run on justhunt.co · JustHunt — builder + submission walkthrough.

In this video· click a step to jump to it

J
Passed

Test recording

JustHunt — builder + submission walkthrough

192,357 ms · 273,861 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against justhunt.co. 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, 1400); await new Promise(r => setTimeout(r, 350)); await anim(max, 0, 800); })()";
  const BUILDER = '/builder/ae315ce2-76b8-4c0d-9eb6-61e7dc57a260';

  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) { r.abort(); }).catch(function () {});

  // ---------- PUBLIC: the directory ----------
  stepLogger.log('Public: the JustHunt launch directory');
  await page.goto(baseUrl + '/', { waitUntil: 'domcontentloaded' });
  await page.locator('h1, main').first().waitFor({ state: 'visible', timeout: 12000 }).catch(function () {});
+111 more lines claim the test to get the full code.

Checks run

Run
Visual
5.62%
Text
DOM
Network
+260 −260
Console
A11y
A
Perf
1105 over
URL
Variables
Full report
Log in →
273,861
Diff px
3m 12s
Duration
A
Accessible
WCAG 2.2 · 90
Review
Fast
Web Vitals

Notes from the demo run

AI-generated

We signed in with Google and drove 11 post-login actions through JustHunt: the builder dashboard, the profile editor (edited the bio and saved it), the submission wizard from a bare URL through the auto-fill, the validation state it lands in, the manual fixes, the description step, back to the dashboard, the public builder profile the edits produced, and the winners board. The submission wizard is the right idea. You paste one URL, the crawler pulls back title, tagline, logo, description and two more fields, each tagged with a small Auto badge, and the draft autosaves as you go. Going from a URL to a nearly complete listing in one step is exactly the friction removal a launch directory should be competing on.

Highlights
  • One URL fills six fields
    We pasted lastest.cloud and got slug, name, tagline, logo, website and description back, each marked with an Auto badge so you know what to check. Most directories still make you type all of that.
  • The draft autosaves
    'Draft saved at 11:27 AM - your inputs are safe' appeared without us asking. On a form this long that is the difference between finishing and abandoning.
  • Errors are counted, not just flagged
    The step rail shows '3 missing' on Details and 'Please fix 3 fields before continuing'. A count beats a red outline you have to hunt for.
  • Google sign-in is a two-click path
    Account chooser, straight back to the directory, signed in. No confirmation email, no onboarding wall between signing in and reaching /submit.
Friction points
  • The auto-fill produces values that fail your own validation
    From lastest.cloud the crawler wrote a 67-character Startup Name against a 60-character cap and a slug your own rule rejects as Invalid, so the step opens with 3 errors on a form the user has not touched yet. Truncating the name to the cap and slugifying to your own pattern before writing the fields would make auto-fill land clean instead of landing pre-broken.
  • The tagline lands at exactly the limit
    Same pass filled Tagline to 60/60. Any edit a user makes pushes it over, so the first thing they do to a working field breaks it. A little headroom in the generated value would avoid that.
Couldn't reach
  • Final Launch submit·We walked the wizard but did not publish a listing - we are not going to create public content in someone else's directory during a demo

7 visual changes

Step 1271,263 px changed
Before
Before
After
After
Diff
Diff
Step 3818 px changed
Before
Before
After
After
Diff
Diff
Step 766 px changed
Before
Before
After
After
Diff
Diff
Step 8503 px changed
Before
Before
After
After
Diff
Diff
Step 9503 px changed
Before
Before
After
After
Diff
Diff
Step 10503 px changed
Before
Before
After
After
Diff
Diff
Step 13205 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,846 test runs recorded · 1,040 products tested with Lastest

This test was built for justhunt.co — 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.