In this video· click a step to jump to it
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 () {});
}
Checks run
Notes from the demo run
AI-generatedWe 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.
- Two recording modes with distinct promisesGuided 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 properlyThe three OAuth buttons stay disabled until the privacy checkbox is ticked — deliberate, and rarer than it should be.
- A 'Checking this browser…' interstitial greets you after OAuthComing 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
Proof your app is not AI slop
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.