Recording of the visual regression run on mythex.ai · Mythex — app walkthrough.

In this video· click a step to jump to it

M
Passed

Test recording

Mythex — app walkthrough

114,650 ms · 48,312 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against mythex.ai. 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 PROJECT_ID = 'cmubd0ifb0k3vp801mn1eg5ss';
  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' });
  await page.route('**/connect.facebook.net/**', function (r) { r.abort(); }).catch(function () {});
  await page.route('**/analytics.tiktok.com/**', function (r) { r.abort(); }).catch(function () {});
  await page.route('**/analytics.twitter.com/**', function (r) { r.abort(); }).catch(function () {});

  // ─── Scenario 1: public template gallery (context) ────────────────────────
  stepLogger.log('Scenario 1: Template gallery');
+74 more lines claim the test to get the full code.

Checks run

Run
Visual
52.73%
Text
DOM
Network
+300 −290
Console
A11y
A
Perf
390 drift
URL
Variables
Full report
Log in →
48,312
Diff px
1m 55s
Duration
A
Accessible
WCAG 2.2 · 97
A
Fast
Web Vitals · 100

Notes from the demo run

AI-generated

We signed up to Mythex with a fresh email, verified the 6-digit code, and drove the workspace end to end: we asked Mythex to build a dog-walking booking page, watched the agent plan, write index.html / index.css / App.tsx and serve a live preview, then walked Projects, Account settings, Domains and Plans & credits. The build-to-preview loop is the strongest part of the product: from a one-line prompt to a rendered site with a thumbnail in the projects grid took under a minute, and the credit meter on Plans showed the exact cost (0.52 credits) attributed to the project by name.

Highlights
  • Prompt to live preview is genuinely fast
    One sentence in the composer produced a planned, file-by-file build with a live iframe preview. The agent's reasoning is shown inline (Exploring 6 files, Write App.tsx), so the wait never feels like a black box.
  • Credits are attributed per project
    Plans & credits showed 0.52 credits spent, broken out by project name, on a 30-day sparkline. Most AI builders show a single opaque balance; attributing spend to a project is the thing that makes a credit model trustworthy.
  • Projects grid renders a real screenshot
    The generated site shows up as an actual rendered thumbnail, not a placeholder card, so the workspace reads as a portfolio the moment the first build finishes.
Friction points
  • Deep links into the app show the marketing page first
    Navigating straight to /dashboard/projects, /settings or /billing paints the public landing page for roughly 5-8 seconds before the workspace hydrates. Anyone opening a shared in-app link (or refreshing) sees the marketing site and may bounce. A server-side session-hint redirect, or an app-shell skeleton instead of the marketing shell, removes it.
  • Workspace name defaults to the raw email local-part
    The sidebar and the hero read "lastestcloud+mythexmubcxrtc's workspace" and "Ready to build, lastestcloud+mythexmubcxrtc?" even though signup collects a Full name field. Falling back to the name (or just the part before any + suffix) would make the first authed frame feel personal instead of machine-generated.
Couldn't reach
  • /settings (Delete account)·Destructive - screenshotted the Danger zone but never clicked
  • Stripe checkout·Demo runs never reach a paid checkout

8 visual changes

Step 24,219 px changed
Before
Before
After
After
Diff
Diff
Step 34,250 px changed
Before
Before
After
After
Diff
Diff
Step 44,201 px changed
Before
Before
After
After
Diff
Diff
Step 54,196 px changed
Before
Before
After
After
Diff
Diff
Step 64,723 px changed
Before
Before
After
After
Diff
Diff
Step 726,490 px changed
Before
Before
After
After
Diff
Diff
Step 829 px changed
Before
Before
After
After
Diff
Diff
Step 10204 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,846 test runs recorded · 1,040 products tested with Lastest

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