Recording of the visual regression run on twinen.com · Twinen — app walkthrough.

In this video· click a step to jump to it

T
Passed

Test recording

Twinen — app walkthrough

180,969 ms · 581,986 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against twinen.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, 1400); await new Promise(r => setTimeout(r, 350)); await anim(max, 0, 800); })()";
  const UA = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36";
  await page.context().setExtraHTTPHeaders({ 'User-Agent': UA });
  for (const pattern of ['**/sentry-cdn.com/**', '**/browser.sentry-cdn.com/**', '**/cdn.segment.com/**', '**/connect.facebook.net/**', '**/*.posthog.com/**', '**/googletagmanager.com/**', '**/google-analytics.com/**', '**/*.clarity.ms/**', '**/doubleclick.net/**']) {
    await page.route(pattern, function (r) { r.abort(); }).catch(function () {});
  }
  const dismiss = async function () {
    for (const rx of [/^accept$/i, /accept all/i, /got it/i, /allow all/i, /^ok$/i, /skip for now/i, /maybe later/i, /^later$/i, /not now/i, /^close$/i, /^dismiss$/i]) {
      await page.getByRole('button', { name: rx }).first().click({ timeout: 1200 }).catch(function () {});
    }
+148 more lines claim the test to get the full code.

Checks run

Run
Visual
25.01%
Text
DOM
Network
+66 −66
Console
A11y
C
Perf
979 over
URL
Variables
Full report
Log in →
581,986
Diff px
3m 01s
Duration
C
Accessible
WCAG 2.2 · 73
Review
Fast
Web Vitals

Notes from the demo run

AI-generated

Twinen's /auth offers Google, Apple, or email plus a handle you claim at signup. Google sign-in landed on /feed with an onboarding stack (profile photo, claim your handle) that both dismiss cleanly with 'Skip for now' and 'Later'. The feed carries the positioning: Global/Following toggles, chronological ordering, a composer with Media/Link/Twin/Poll modes, and Daily Challenges giving a brand-new account something to do.

Highlights
  • Handle claim is deferred, not blocking
    You get a temporary @user_... and can post immediately - 'Later' genuinely works. Most social products make the handle a hard gate on first run.
  • The 'no algorithm' promise is visible in the product
    /feed exposes Global and Following as explicit toggles with chronological ordering, so the landing-page claim is something you can see rather than take on trust.
  • A new account is not an empty room
    Daily Challenges (0/3, 'earn up to 60 coins') plus named starter tasks - Tune your AI Twin, Make your profile yours, Post something real, Find your circle - replace the usual blank feed.
Friction points
  • /profile and /ai both 404
    The product talks about your profile and your AI Twin constantly, and both obvious URLs return 'Oops! Page not found'. The real paths are /u/<handle> and the in-app Twin panel; two redirects would catch a lot of typed-URL traffic.
  • The temporary handle leaks into the header
    @user_5fe15e35 shows in the nav until claimed. A friendlier placeholder, or showing the display name until the handle is set, would read less like a bug.
Couldn't reach
  • /feed Post·Would publish public content on the founder's network - we drafted in the composer and stopped

4 visual changes

Step 137,153 px changed
Before
Before
After
After
Diff
Diff
Step 216 px changed
Before
Before
After
After
Diff
Diff
Step 316 px changed
Before
Before
After
After
Diff
Diff
Step 11544,801 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,430 test runs recorded · 963 products tested with Lastest

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