In this video· click a step to jump to it
Test recording
TrustTraffic — signed-in app walkthrough
52,863 ms · 1,205,848 pixels changed
We built this regression test for trusttraffic.net — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against trusttraffic.net. 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, slug) => screenshotPath.replace('.png', `-${n}-${slug}.png`);
const STAMP = Date.now().toString(36);
const NEW_SITE = `demo-${STAMP}.lastest.cloud`;
const SCROLL_TO = (n) => "(async () => { const ease = t => 1 - Math.pow(1 - t, 3); const target = window.innerHeight * " + n + "; const from = window.scrollY; 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(from, target, 1100); await new Promise(r => setTimeout(r, 450)); })()";
const TOP = "(() => { window.scrollTo(0, 0); })()";
// ─── Scenario 1: signed-in dashboard ──────────────────────────────────────
stepLogger.log('Scenario 1: Signed-in Crawlers dashboard');
await page.goto(baseUrl + '/dashboard', { waitUntil: 'domcontentloaded' });
await page.getByRole('button', { name: /^OK$/ }).click({ timeout: 2500 }).catch(function () {});Checks run
Notes from the demo run
AI-generatedWe signed into TrustTraffic on a fresh free account and drove the whole product: four-step onboarding, adding a tracked domain, the AI-crawler dashboard across 7/30/90-day ranges, the per-bot and per-page breakdowns, Citations, Settings and Pricing. The tick-box that seeds a new site with sample crawler hits is the single best thing on the page - it means an evaluator sees a full dashboard before installing a single line of middleware, which most analytics products make you wait days for.
- Sample data before installThe 'sample data' checkbox next to Add site fills a brand-new domain with 90 days of realistic bot hits. We had a populated dashboard about eight seconds after signup, with zero tracker installed - that is the fastest time-to-value we have measured on a launch-week analytics tool.
- The per-bot table answers the actual question'BY BOT - CLICK TO SEE ITS PAGES' grouped into Model training / Answer fetches / Search indexing / Other is the framing a site owner cares about. Naming ClaudeBot, Google-CloudVertexBot and Meta-ExternalAgent individually makes the abstract 'AI crawler' problem concrete.
- Onboarding is four short steps and genuinely skippableTheme, notifications, add site, install tracker - with a Skip for now on every step. We reached the dashboard without being forced through a single required field.
- Add site leaves the button stuck on 'Adding...'After clicking + Add, the site IS created (the URL becomes /dashboard?site=<id>&created=1) but the page keeps rendering the old site and the button stays on 'Adding...' until a manual reload. We hit it on both runs and had to add an explicit reload to the test. A router.refresh() once the server action resolves would fix it.
- Three of the four headline tiles are locked on the free planOn a first-run free dashboard, '404s hit', the 404-signal panel, bot-vs-human and the whole Citations tab all render as Pro upsells. The one panel that does show free data (hits per day) is doing a lot of work; moving one of the locked insights above the paywall would make the free dashboard feel less like a pricing page.
7 visual changes
Share this run
Proof your app is not AI slop
This test was built for trusttraffic.net — 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.




















