Recording of the visual regression run on tryoutloud.app · Outloud — app walkthrough.

In this video· click a step to jump to it

T
Passed ✓

Test recording

Outloud — app walkthrough

71,559 ms · 0 pixels changed · matches baseline

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

Take this test with you

This is a real Playwright test, recorded against tryoutloud.app. Claim it into your own workspace and re-run it on every deploy — free.

export async function test(page, baseUrl, screenshotPath, stepLogger) {
  const MARKETING = 'https://tryoutloud.app';
  const APP_ENTRY = '/app/voices';
  const COOKIES = [{"name": "signup_ref", "value": "producthunt", "url": "https://tryoutloud.app"}, {"name": "outloud_session", "value": "•••", "url": "https://tryoutloud.app"}];
  const shot = (n, slug) => screenshotPath.replace('.png', '-' + n + '-' + slug + '.png');
  const UA = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36';
  await page.context().setExtraHTTPHeaders({ 'User-Agent': UA }).catch(function () {});
  const noise = ['**/cdn-cgi/scripts/**/email-decode.min.js', '**/sentry-cdn.com/**', '**/browser.sentry-cdn.com/**', '**/cdn.segment.com/**', '**/connect.facebook.net/**', '**/widget.intercom.io/**', '**/*.intercom.io/**'];
  for (const p of noise) { await page.route(p, function (r) { r.abort(); }).catch(function () {}); }
  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, 300)); await anim(max, 0, 800); })()";

  // ── Public phase: marketing home ──
+121 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
✓
Text
—
DOM
✓
Network
+546 −0
Console
✓
A11y
A
Perf
98 over
URL
210 diverged
Variables
—
Full report
Log in →
0
Diff px
1m 12s
Duration
A
Accessible
WCAG 2.2 · 93
C
Fast
Web Vitals · 70

Notes from the demo run

AI-generated

Outloud opens into a genuinely novel onboarding: a four-step wizard (Name, Source, Build, Autopilot) where the Build step lets you blend real creators (levelsio, shadcn and more) into one hybrid writing voice that stays your ideas in their cadence. The authed app at /app/voices is clean and product-tour guided.

Highlights
  • Voice library is the standout
    Blending named creators into a single hybrid voice is a memorable first-run moment, and the style tag chips (build-in-public, aphoristic, essayist) make the choice concrete.
  • Guided product tour
    The 1-of-3 coach-marks on /app/voices orient a new user without a wall of text.
Friction points
  • Deep-links bounce to onboarding
    Visiting /app before finishing setup redirects to the wizard, and unknown /app/* paths (e.g. /app/posts) render a hard 404 instead of a nudge back to setup.
  • Hidden 150-word gate
    The Add-your-writing step only reveals its 150-word minimum after you type too little (Add a bit more to continue), which reads as the button being broken.

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,604 test runs recorded · 1,174 products tested with Lastest

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