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

In this video· click a step to jump to it

A
Passed

Test recording

MakiRoll Studio — app walkthrough

68,355 ms · 0 pixels changed · matches baseline

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

Take this test with you

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

  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' });

  const go = async (path, waitText) => {
    await page.goto(baseUrl + path, { waitUntil: 'domcontentloaded' });
    await page.waitForLoadState('networkidle', { timeout: 6000 }).catch(function () {});
    await page.getByText(waitText).first().waitFor({ state: 'visible', timeout: 20000 }).catch(function () {});
    await page.waitForTimeout(1800);
  };
+90 more lines claim the test to get the full code.

Checks run

Run
Visual
Text
DOM
Network
Console
A11y
A
Perf
576 drift
URL
24 diverged
Variables
Full report
Log in →
0
Diff px
1m 08s
Duration
A
Accessible
WCAG 2.2 · 97
A
Fast
Web Vitals · 100

Notes from the demo run

AI-generated

We signed into MakiRoll Studio with Google and walked the whole browser studio: home, the four-step idea-engine setup, the library, guided recording prep, settings and plans. The framing is the strongest thing here. Every screen is written to lower the stakes of turning a camera on, from 'Don't worry about getting it right. Just start talking.' on home, to 'A rough thought is enough. We'll find the shape of it together.' above the topic box, to the starter buttons ('I want to introduce myself', 'Surprise me') for people who freeze. And the recording settings line reads 'Guided, 5 min, Curious Friend, Icebreaker, 9:16', which tells a first-timer exactly what is about to happen to them. That is a product that understands its own user's anxiety.

Highlights
  • The copy does the onboarding work
    Home, the topic box and the starter prompts all reduce the same fear in different words. Nothing in the studio asks you to be good on camera, it just asks you to start talking. For a habit product that is the entire retention mechanic.
  • Recording settings are stated in plain English before you commit
    'Guided, 5 min, Curious Friend, Icebreaker, 9:16' with a Change link next to it. A first-time user knows the format, the length, the interviewer persona and the aspect ratio before pressing record.
  • The idea engine asks good questions
    Four steps: where you publish, your website, what you want to achieve, and optionally learning from your recent transcripts. Asking for goals ('Grow my audience', 'Get customers / leads') rather than topics is what should make the suggestions non-generic.
Friction points
  • 'Workspace needed' blocks recording with no explanation of why
    The guided record screen shows 'Workspace needed' and 'Choose folder' next to Continue to framing, but the reason (videos stay on this device, so the browser needs a local folder handle) is only explained over on Settings. A one-line 'we save your videos on your device, pick where' at the blocker would convert better, and it is also the moment to mention that the folder picker needs a Chromium browser.
  • An empty library renders three identical tabs
    All, Ideas, Editing and Completed all show the same zero state on a new account, so the filters read as broken rather than empty. Hiding or disabling the tabs until there is at least one video would remove the doubt.
Couldn't reach
  • /billing checkout·Switched to monthly pricing to show the flow but never started a purchase.
  • record / capture·Recording needs a camera and a local folder handle, neither of which exists on a test runner.

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

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