In this video· click a step to jump to it
Test recording
CustomerFinderBot — app walkthrough
52,243 ms · 0 pixels changed · matches baseline
We built this regression test for customerfinderbot.com — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against customerfinderbot.com. Claim it into your own workspace and re-run it on every deploy — free.
export async function test(page, baseUrl, screenshotPath, stepLogger) {
const EMAIL = '[email protected]';
const PASSWORD = '•••';
const SITE = baseUrl.replace(/\/$/, '');
let n = 0;
const shot = async (slug) => {
n += 1;
stepLogger.log(slug);
await page.screenshot({ path: screenshotPath.replace('.png', `-${String(n).padStart(2,'0')}-${slug}.png`), fullPage: true });
};
const go = async (path) => {
await page.goto(`${SITE}${path}`, { waitUntil: 'domcontentloaded', timeout: 15000 }).catch(() => {});Checks run
Notes from the demo run
AI-generatedCustomerFinderBot has a punchy hero (Find Your Customers On Autopilot with Social Media AI), a Gumroad-powered checkout, and a refreshingly minimal Devise auth: email + 6-char password, no captcha, no verify-email gate. The post-signup empty state nudges you straight to Add New Project, and the new-project form uses concrete placeholder copy that teaches you how to phrase a keyword.
- Frictionless signupThree fields, no captcha, no email-verification gate. Account created and dashboard reached in under 4 seconds. Increasingly rare in 2026 — most indie SaaS now gate on magic-link or 4-digit code, so this is a real conversion advantage.
- Teaching placeholders on the new-project formThe Description placeholder tells the user WHY the field matters (this will be used to determine if the leads are relevant), not just WHAT to type. Same for Keyword (Note: Only 1 keyword is allowed). Lowers first-project failure rate.
- Empty-state copy is on-brandWelcome message + Add your products or services and let our bot find relevant posts for you to engage with potential customers sets the bot mental model without jargon.
- No live password-strength indicator6-character minimum is shown but users only learn about other constraints (if any) at submit time. A visible strength meter would surface friction earlier.
- Hero CTA jumps to Gumroad checkout, not signupFind Customers Now routes to fiinvestor.gumroad.com/l/nmcmrx rather than /users/sign_up. An evaluator who wants to see the UI first will bounce. Consider a Try the Dashboard CTA alongside the Subscribe path.
- GTM analytics keep networkidle from resolvinggoogletagmanager.com/gtag keepalive prevents Playwright networkidle from settling on most pages. Likely affects your own automated test suite (the one your tweet mentioned) — switch to domcontentloaded + a fixed timer for 2-3x faster runs.
- Project submit + scan·Submitting the new-project form would trigger outbound bot activity against Twitter and Reddit. Kept the form filled but unsubmitted to stay non-destructive and idempotent.
- Gumroad checkout·External Gumroad URL, not part of the app under test.
Share this run
Proof your app is not AI slop
This test was built for customerfinderbot.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.