In this video· click a step to jump to it
Test recording
BatchEdits — app walkthrough
83,576 ms · 0 pixels changed · matches baseline
We built this regression test for batchedits.com — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against batchedits.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, 1400); await new Promise(r => setTimeout(r, 350)); await anim(max, 0, 800); })()";
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' });
for (const pattern of ['**/cdn-cgi/scripts/**/email-decode.min.js', '**/sentry-cdn.com/**', '**/browser.sentry-cdn.com/**', '**/cdn.segment.com/**', '**/connect.facebook.net/**']) {
await page.route(pattern, function (r) { r.abort(); }).catch(function () {});
}
// ─── Scenario 1: Public home (context) ────────────────────────────────────
stepLogger.log('Scenario 1: Home');
await page.goto(baseUrl + '/', { waitUntil: 'domcontentloaded' });Checks run
Notes from the demo run
AI-generatedBatchEdits is an AI bulk video editor that turns raw clips into captioned, silence-trimmed short-form in a few clicks. Sign-in is one Google click (NextAuth); onboarding is a clean three-step wizard — Bulk Upload (with a handy 'use sample video' shortcut) -> Style Selection -> Editing Progress. The style presets are named after creators (Alex Hormozi, Ali Abdaal, MrBeast) so the output style is instantly legible, and each spells out exactly what it does (silence removed, captions added, auto-zoom or 9:16 crop).
- One-click Google sign-inContinue-with-Google (NextAuth) landed us straight in the onboarding wizard — no password or verification step.
- 'Use sample video' shortcutYou can try the whole edit flow on a bundled sample without uploading anything — a great way to show value before a user commits their own footage.
- Creator-named presetsAlex Hormozi / Ali Abdaal / MrBeast presets make the output style obvious at a glance, and each lists its exact edits (silence removal, captions, crop). Custom gives full control.
- /dashboard bounces to onboardingDeep-linking to /dashboard before a first edit finishes redirects back to /onboarding/upload — a returning user who hasn't completed an edit lands somewhere they didn't expect. A 'finish your first edit' nudge on /dashboard would read better than a silent bounce.
- Start-Editing gated on background upload'Start Editing' stays disabled while the sample/video is still uploading in the background (we saw it at 50%). A clearer 'upload still finishing…' label on the button would explain the wait instead of looking like a dead button.
Share this run
Proof your app is not AI slop
This test was built for batchedits.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.