In this video· click a step to jump to it
Test recording
podscan — app walkthrough
70,511 ms · 13,116 pixels changed
We built this regression test for podscan.fm — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against podscan.fm. Claim it into your own workspace and re-run it on every deploy — free.
export async function test(page, baseUrl, screenshotPath, stepLogger) {
const CFG = {"appEntry":"/dashboard","publicMaxNav":0,"fullPage":true,"steps":[{"goto":"/dashboard","dismiss":true,"waitMs":2000,"label":"dashboard-overview"},{"fill":[{"sel":"input[placeholder*=\"looking for\" i]","value":"Lenny's Podcast","seq":true}],"submit":"Search","waitMs":4500,"label":"search-podcasts"},{"goto":"/dashboard/publishers","waitMs":1800,"label":"publishers"},{"goto":"/dashboard/demographics","waitMs":1800,"label":"demographics"},{"goto":"/dashboard/share-of-voice","waitMs":1800,"label":"share-of-voice"},{"goto":"/dashboard/landscape-reports","waitMs":1800,"label":"landscape-reports"},{"goto":"/dashboard/favorites","waitMs":1500,"label":"favorites"},{"goto":"/user/api-tokens","waitMs":1800,"label":"api-tokens"},{"goto":"/dashboard/api-logs","waitMs":1600,"label":"api-logs"},{"goto":"/dashboard/billing","waitMs":1800,"label":"billing"}]};
const shot = function(i, s){ return screenshotPath.replace('.png', '-' + i + '-' + s + '.png'); };
page.setDefaultTimeout(6000);
// single combined noise-abort route (1 action instead of ~10)
await page.route(function(u){ return /sentry|segment\.com|googletagmanager|google-analytics|hotjar|posthog|connect\.facebook|cdn-cgi\/scripts/.test(u.toString()); }, function(r){ r.abort().catch(function(){}); }).catch(function(){});
let n = 1;
const FP = CFG.fullPage !== false;
const GOTO = 11000;
const wait = function(ms){ return page.waitForTimeout(ms||500); };
const dismiss = async function(){ const d = page.getByRole('button', { name: /skip|dismiss|maybe later|not now|got it|close|no thanks|continue|get started/i }).first(); if (await d.isVisible().catch(function(){return false;})) { await d.click({ timeout:2000 }).catch(function(){}); await wait(400); } };
const clickByText = function(src){ return page.evaluate(function(s){Checks run
Notes from the demo run
AI-generatedPodscan is real-time podcast monitoring — get alerted the moment your brand, competitors or industry is mentioned across 4.7M+ podcasts, with a full analytics + export + API surface. After an email-verify the dashboard is a serious operator console: a natural-language search bar up top, then Podcasts / Topics / Charts / Sponsors discovery, Keyword & Sponsor Alerts, Share-of-Voice, Demographics, Landscape Reports, contact/data exports, an API token manager with usage and MCP logs, and team billing. It reads like a mature intelligence product, not an MVP.
- Search is the front doorThe authenticated dashboard leads with a single "whatever you're looking for…" box — the core job (find what podcasts say about you) is one keystroke away, exactly right for a monitoring tool.
- Genuinely deep IA for an indie productShare of Voice, Demographics, Landscape Reports, Contact/Data Exports, an API-token manager with usage + overage + MCP logs — the breadth signals this is a real data platform, and it all rendered cleanly under baseline.
- API-first with MCP logs already shippedAPI Tokens, API Usage & Overage and dedicated MCP Logs are first-class nav items — a strong signal to developer buyers that automation is a supported path, not an afterthought.
- Email-verify gate before first valueSignup sends a verification link that must be clicked before the dashboard is reachable — an inbox hop between "sign up" and "see mentions" on a product whose pitch is real-time speed.
- Empty-account first runA brand-new account has no alerts or favourites configured, so Alerts / Favorites / Reports open on empty states; a seeded example keyword would let an evaluator feel the monitoring loop before configuring it.
5 visual changes
Share this run
Proof your app is not AI slop
This test was built for podscan.fm — 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.














