In this video· click a step to jump to it
Test recording
Formbase — form builder walkthrough
133,035 ms · 26,774 pixels changed
We built this regression test for app.formbase.so — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against app.formbase.so. Claim it into your own workspace and re-run it on every deploy — free.
export async function test(page, baseUrl, screenshotPath, stepLogger) {
const SITE = (baseUrl || 'https://app.formbase.so').replace(/\/$/, '');
const WS = '/ks7dvbxb471m30xfq00yzmz3r18fbqbq';
const FORM = WS + '/forms/jx733qwxpsjrnyce7mzvb3gdk98fataz';
let n = 0;
const shot = async (slug) => {
n += 1;
const p = String(screenshotPath).replace(/\.png$/i, '') + '-' + String(n).padStart(2, '0') + '-' + slug + '.png';
await page.screenshot({ path: p, fullPage: false });
stepLogger.log('frame ' + n + ' ' + slug + ' :: ' + page.url());
};
const settle = async (ms) => { await page.waitForTimeout(ms); };Checks run
Notes from the demo run
AI-generatedWe signed in to app.formbase.so with Google, created a workspace, built a real lead-capture form from your Lead Generation template, filled it in as a respondent through Preview, and walked the submissions board, integrations catalog, branded domains, requests and trash. The template-to-blocks transform is the strongest moment in the product: one click turned an empty doc into seven correctly-typed, correctly-required fields.
- Templates produce real blocks, not a static layoutPicking Lead Generation produced Full Name, Work Email, Company, Job Title, a five-option Company Size, a five-option source question and a long-text field - each already typed, each already marked required. Nothing to clean up afterwards.
- Edit, Translate, Preview and Submissions share one URL per formSwitching between authoring and the respondent view is a tab, not a new page and not a modal. It makes checking your own form feel free, which is exactly when people actually do it.
- The submissions board ships its analytics before any data arrivesSummary, Submissions and Analytics with a Live data badge are all present at zero submissions, so a new user can see what they are going to get rather than a blank panel.
- Requests is a genuinely different primitive'Everything you are waiting on from customers, across all forms', with curl and MCP snippets for Make, Zapier or Claude alongside the manual send. That is a chase-the-customer workflow, not another form builder feature.
- A brand-new account lands on a feature it has no credits forCreating a form opens the AI composer - 'What would you like to build?' - with 'Out of AI credits, Add credits' directly underneath, because the free plan starts at zero. The templates are right there and they are excellent; defaulting new forms to the template picker until an account has credits would lead with the part that works.
- The first Create Form click is swallowed by the product tourOn a fresh workspace, clicking Create Form opens a 7-step tour instead of the create dialog; you dismiss the tour and have to click Create Form again. Letting that first click through after the tour closes, or deferring the tour until a form exists, removes a false start on the very first action.
- Publish·Not exercised - we do not publish a live form from a founder's account.
- OAuth and API Keys·Deliberately skipped - we never mint or display API credentials on a recording.
7 visual changes
Share this run
Proof your app is not AI slop
This test was built for app.formbase.so — 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.




















