Recording of the visual regression run on app.makirollapp.com · MakiRoll Studio — app walkthrough.

In this video· click a step to jump to it

A
Passed

Test recording

MakiRoll Studio — app walkthrough

78,689 ms · 0 pixels changed · matches baseline

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

Take this test with you

This is a real Playwright test, recorded against app.makirollapp.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 = (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, 1200); await new Promise(r => setTimeout(r, 300)); await anim(max, 0, 700); })()";
  const ctx = page.context();

  page.setDefaultTimeout(12000);
  await ctx.setExtraHTTPHeaders({ 'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36" });
  for (const pattern of ['**/cdn-cgi/scripts/**', '**/*sentry-cdn.com/**', '**/cdn.segment.com/**', '**/connect.facebook.net/**', '**/*.doubleclick.net/**', '**/googletagmanager.com/**']) {
    await page.route(pattern, function (r) { r.abort().catch(function () {}); }).catch(function () {});
  }
+144 more lines claim the test to get the full code.

Checks run

Run
Visual
Text
DOM
Network
Console
A11y
A
Perf
220 over
URL
260 diverged
Variables
Full report
Log in →
0
Diff px
1m 19s
Duration
A
Accessible
WCAG 2.2 · 94
B
Fast
Web Vitals · 85

Notes from the demo run

AI-generated

We signed in to MakiRoll Studio with Google and walked the authenticated studio: Home, the guided and ramble recording modes, the idea finder, Library with its All/Ideas/Editing/Completed filters, Settings and Billing. The studio is calm and opinionated — 'Don't worry about getting it right, just start talking' is carried through the whole signed-in surface, and the empty states invite rather than nag.

Highlights
  • Two recording modes with distinct promises
    Guided and Ramble are separated at the entry point with one line each, so a new creator picks a mode instead of staring at a record button.
  • Empty states that recruit
    'Your first story starts here' with a single Start a video CTA beats a blank grid, and the All/Ideas/Editing/Completed filters already imply the lifecycle.
  • Consent is gated properly
    The three OAuth buttons stay disabled until the privacy checkbox is ticked — deliberate, and rarer than it should be.
Friction points
  • A 'Checking this browser…' interstitial greets you after OAuth
    Coming back from Google you land on a browser-check screen before the studio paints. It clears, but it is the first thing a new user sees after handing over their Google account.
  • The idea-finder step didn't render an input in time
    /ideas/setup?step=1 loaded but no text field became interactive within our wait window on the recorded run, so the wizard's first step is slower to hydrate than the rest of the studio.

Share this run

Earned · Lastest awards

Proof your app is not AI slop

LASTEST
starter
tests
all passing
regressions
0
Badges stay live, ratchet upward, only downgrade on confirmed regression.
56,423 test runs recorded · 962 products tested with Lastest

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