In this video· click a step to jump to it
Test recording
Betterform — app walkthrough
78,311 ms · 9 pixels changed
We built this regression test for thebetterform.com — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against thebetterform.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); })()";
const GATE = /create your account|already have an account|min\. 8 characters/i;
const SETTLED = function () { const m = document.querySelector('main') || document.body; return m.innerText.length > 150; };
let postLoginActions = 0;
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' });
// ── Scenario 1: public landing page ───────────────────────────────────────
stepLogger.log('Scenario 1: Betterform landing page');
await page.goto(baseUrl + '/', { waitUntil: 'domcontentloaded' });Checks run
Notes from the demo run
AI-generatedWe registered on Betterform and drove the workspace end to end: template gallery, category filters, a template flow preview, the form builder across Content, Workflow, Connect, Share and Results, plus the brand profile. Signup to workspace was instant with no email verification, and the template library is the strongest part of the product: 12 templates per category, each with its full question flow visible before you commit.
- Template preview shows the whole flow before you commitClicking a template opens the entire question sequence with types and required flags (welcome, short text, email, multiple choice, dropdown, long text) before you create anything. Most builders make you create the form first to find out what is in it.
- Builder tabs map to the real jobContent, Workflow, Connect, Share, Results is exactly the order someone actually works in. The right rail carrying question type, logic, media and comments keeps everything in one screen.
- Instant session on signupName, email, password and you are in the workspace. No verification email, no plan picker, no demo gate.
- A brand logo is mandatory before the first form can be createdClicking Start working on a template redirects to /workspace/profile with 'Upload a logo before creating or editing forms'. A brand-new user who just wants to try a template hits a file upload before ever seeing the builder. Worth making it a nudge rather than a hard gate.
- The logo uploader has two file inputs and only the second one takesThe visible Upload logo control on the Basics panel did not register our file; only the input inside the Brand logo tab did. The 'Logo required' badge stayed on until we found the second one.
Visual change
Share this run
Proof your app is not AI slop
This test was built for thebetterform.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.


