Recording of the visual regression run on craftsite-ai.vercel.app · CraftSite AI — app walkthrough.

In this video· click a step to jump to it

C
Passed ✓

Test recording

CraftSite AI — app walkthrough

84,414 ms · 293,281 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against craftsite-ai.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, 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, 1400); await new Promise(r => setTimeout(r, 350)); await anim(max, 0, 800); })()";

  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', '**/sentry-cdn.com/**', '**/browser.sentry-cdn.com/**', '**/cdn.segment.com/**', '**/connect.facebook.net/**', '**/www.googletagmanager.com/**']) {
    await page.route(pattern, function (r) { r.abort().catch(function () {}); }).catch(function () {});
  }

  let n = 1;

  // ─── Public context: home ───────────────────────────────────────────────
+70 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
100.00%
Text
—
DOM
✓
Network
+33 −33
Console
✓
A11y
A
Perf
165 over
URL
✓
Variables
—
Full report
Log in →
293,281
Diff px
1m 24s
Duration
A
Accessible
WCAG 2.2 · 92
C
Fast
Web Vitals · 70

Notes from the demo run

AI-generated

CraftSite's dashboard reads like a genuine creative command center: the credit counter, Plan and Usage card, and empty-state Start Building CTA are all clear, and the /generate flow drops you straight into a live canvas that streams the build.

Highlights
  • Instant post-signup workspace
    Email signup auto-sessions straight into /dashboard with 20 free credits, with no verification wall between sign-up and first generation.
  • Live generation canvas
    /generate shows a 'Spinning up the preview' streaming state so users watch progress instead of a blank spinner.
Friction points
  • Projects and Templates overlap
    Both /projects and /templates open near-identical empty states; a single 'Saved work' surface could reduce confusion for new users.

9 visual changes

Step 123,505 px changed
Before
Before
After
After
Diff
Diff
Step 2177 px changed
Before
Before
After
After
Diff
Diff
Step 529 px changed
Before
Before
After
After
Diff
Diff
Step 6118,357 px changed
Before
Before
After
After
Diff
Diff
Step 7442 px changed
Before
Before
After
After
Diff
Diff
Step 83,412 px changed
Before
Before
After
After
Diff
Diff
Step 9112,156 px changed
Before
Before
After
After
Diff
Diff
Step 1035,044 px changed
Before
Before
After
After
Diff
Diff
Step 11159 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,399 test runs recorded · 1,174 products tested with Lastest

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