In this video· click a step to jump to it
Test recording
Scoutr — app walkthrough
57,046 ms · 690 pixels changed
We built this regression test for www.scoutr.dev — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against www.scoutr.dev. 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+'-'+(String(s).replace(/[^a-z0-9]+/gi,'-').replace(/^-|-$/g,'').toLowerCase().slice(0,22)||'view')+'.png');
let idx=1;
const cap=async(s,full)=>{ stepLogger.log('Scenario '+idx+': '+s); await page.screenshot({ path: shot(idx,s), fullPage: full!==false }); idx++; };
const dismiss=async()=>{ for(const re of [/^skip$/i,/skip for now/i,/got it/i,/dismiss/i,/^close$/i,/maybe later/i,/not now/i,/^next$/i,/let.?s go/i]){ await page.getByRole('button',{name:re}).first().click({timeout:800}).catch(function(){}); } await page.keyboard.press('Escape').catch(function(){}); };
const slowScroll=async(prefix,frames)=>{ const total=await page.evaluate(function(){return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight);}).catch(function(){return 3000;}); const vh=await page.evaluate(function(){return window.innerHeight;}).catch(function(){return 900;}); let y=0,seg=1; while(seg<=frames && y < total){ y+=Math.floor(vh*0.8); await page.evaluate(function(yy){window.scrollTo({top:yy,behavior:'smooth'});},y).catch(function(){}); await page.waitForTimeout(1600); await cap(prefix+'-'+seg,false); seg++; } };
await page.goto('https://www.scoutr.dev/',{waitUntil:'domcontentloaded'}).catch(function(){}); await page.waitForLoadState('networkidle',{timeout:6000}).catch(function(){}); await page.waitForTimeout(1600); await cap('home');
// authed discovery input
await page.goto('https://www.scoutr.dev/discovery',{waitUntil:'domcontentloaded'}).catch(function(){}); await page.waitForLoadState('networkidle',{timeout:8000}).catch(function(){}); await page.waitForTimeout(2200);
try { const ta=page.locator('textarea').first(); await ta.click({timeout:3000}).catch(function(){}); await ta.fill('A focus timer that blocks distracting sites and rewards deep-work streaks for remote software developers.').catch(function(){}); await page.waitForTimeout(600); } catch(e){}Checks run
Notes from the demo run
AI-generatedScoutr turns a rough startup idea into a validated, build-ready discovery report. The authed Discovery tool takes a one-line pain/idea and generates structured output (personas, competitors, market signals, risks, MVP scope) — plus a Startup Idea Generator and dedicated validate/competitor tools, each a real free tool rather than a paywall teaser.
- Discovery seeds the empty stateThe /discovery box ships with one-click example ideas (AI Rust tutor, CRM for indie therapists, async retro) so a first-timer never faces a blank box, then generates a full structured report from a single sentence.
- Tool suite, not a single funnelIdea generator, SaaS validator and competitor analysis each have their own route — a genuine try-before-you-pay free tier and a strong SEO surface.
- Honest 1-2 min / no-card framingDISCOVERY · 1-2 MIN · NO CARD sets expectations up front.
- AI generation is the long poleThe discovery report takes tens of seconds to generate; a visible progress/skeleton state keeps evaluators from assuming it hung.
- Auth identity is subtlePost-login the only logged-in signal is a small avatar in the nav; the hero still reads like the marketing page.
2 visual changes
Share this run
Proof your app is not AI slop
This test was built for www.scoutr.dev — 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.





