Recording of the visual regression run on www.4tospeak.com · 4ToSpeak — app walkthrough.

In this video· click a step to jump to it

W
Passed

Test recording

4ToSpeak — app walkthrough

73,527 ms · 122,929 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against www.4tospeak.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 = (i, slug) => screenshotPath.replace('.png', '-' + i + '-' + 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, 250)); await anim(max, 0, 700); })()";
  const SITE = 'https://www.4tospeak.com';

  for (const pattern of ['**/googletagmanager.com/**', '**/google-analytics.com/**', '**/*.posthog.com/**']) {
    await page.route(pattern, function (r) { r.abort(); }).catch(function () {});
  }

  // ── POST-LOGIN ACTION 1: the learner dashboard (modules, XP, streak) ──
  stepLogger.log('Post-login 1: learner dashboard');
  await page.goto(SITE + '/dashboard', { waitUntil: 'domcontentloaded' }).catch(function () {});
+73 more lines claim the test to get the full code.

Checks run

Run
Visual
62.71%
Text
DOM
Network
+66 −66
Console
A11y
A
Perf
55 over
URL
Variables
Full report
Log in →
122,929
Diff px
1m 14s
Duration
A
Accessible
WCAG 2.2 · 92
B
Fast
Web Vitals · 85

Notes from the demo run

AI-generated

We signed up for 4ToSpeak, verified the email, and drove eleven authenticated surfaces: the learner dashboard, the module store, the creator view, the AI assistant, covered words, the leaderboard, friends, stats and settings. For a private beta this is a startlingly complete product, and the creator-economy angle (publish a module, earn 80% of each sale) is a real differentiator against the big language apps. The one thing that misfired for us was the assistant.

Highlights
  • Learners can become creators in the same app
    My modules sits next to Store with 'you earn 80% of each sale'. Most language apps keep the catalogue closed; opening it is a genuinely different bet.
  • The dashboard opens on the next action
    Lesson 1 with a Continue button and the rest of the module listed under it. No hunting for where to resume.
  • Covered Words is a smart review primitive
    Words highlighted in amber during lessons roll up into their own reviewable surface, so vocabulary review is derived from what you actually studied rather than a generic list.
Friction points
  • The assistant refused a valid grammar question
    We asked 'When do I use ser instead of estar in Spanish?' on the Spanish assistant and it replied that it 'can only help with questions about languages, grammar, vocabulary, and English'. That question is grammar, and the page header says SPANISH. The scope guardrail appears to be checking against the interface language rather than the language being learned, so it rejects exactly the questions the feature exists to answer.
  • Verification modal blocks the whole app
    Before verifying, the dashboard renders behind a full 'Verify your email' gate. Letting a new learner start Lesson 1 while verification is pending would get them to the product before the inbox round-trip.

2 visual changes

Step 2122,748 px changed
Before
Before
After
After
Diff
Diff
Step 8181 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,491 test runs recorded · 978 products tested with Lastest

This test was built for www.4tospeak.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.