In this video· click a step to jump to it
Test recording
DemandEcho — app walkthrough
64,457 ms · 14,243 pixels changed
We built this regression test for demandechocom-1.vercel.app — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against demandechocom-1.vercel.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, s) => screenshotPath.replace('.png', '-' + n + '-' + s + '.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); })()";
await page.context().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/**', '**/*.posthog.com/**', '**/google-analytics.com/**', '**/googletagmanager.com/**']) {
await page.route(pattern, function (r) { r.abort(); }).catch(function () {});
}
stepLogger.log('Authed 1: personal research dashboard');
await page.goto(baseUrl + '/dashboard', { waitUntil: 'domcontentloaded' });
await page.getByText('Your research').first().waitFor({ state: 'visible', timeout: 25000 }).catch(function () {});Checks run
Notes from the demo run
AI-generatedWe signed in with Google and drove DemandEcho as a real account: the personal research vault, the idea composer on the signed-in home, then the full evidence report viewer with its time windows, expandable complaint themes, the demand-score explainer and the summariser, finishing on account and plan settings. The strongest thing here is the honesty of the framing. Every claim in the report carries the conversation it came from, and the dashboard says out loud that the research belongs to this account and no one else.
- Google sign-in puts you in the product in one clickOne click, no verify-email detour, and you land on Your research already signed in. We hit the email-and-password path first and it stalls on a confirmation mail; Google is plainly the better front door.
- Evidence over assertionThe report pairs a demand score with source counts, a 7D/30D/90D/ALL window and per-theme source links. A founder can disagree with the number and still use the evidence, which is the right way round.
- The empty state sets the price of the next click'One complete evidence-backed report is $0.99. Checkout is verified before research starts.' sits directly under the composer. No surprise paywall three screens in.
- Email signup creates the account but never sends the confirmationWe registered with email and password, got bounced to 'Please confirm your email first', and no confirmation mail arrived at a normal Gmail inbox over the following half hour. The account exists but cannot be used. Anyone who does not pick Google is stuck with a dead account.
- The name step silently drops the account back to step oneAfter entering a name on the 'What should we call you?' step the form returned to the blank email and password screen rather than completing. The account had in fact been created, so the user sees failure where there was success.
- /pricing·Commercial page, not part of the product walk.
8 visual changes
Share this run
Proof your app is not AI slop
This test was built for demandechocom-1.vercel.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.























