In this video· click a step to jump to it
Test recording
Talandor — app walkthrough
118,061 ms · 1,335 pixels changed
We built this regression test for talandor.com — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against talandor.com. 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 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, 1400); await new Promise(r => setTimeout(r, 350)); await anim(max, 0, 800); })()";
await page.context().setExtraHTTPHeaders({ 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36' });
await page.route('**/cdn-cgi/scripts/**/email-decode.min.js', function (r) { return r.abort(); }).catch(function () {});
await page.route('**/browser.sentry-cdn.com/**', function (r) { return r.abort(); }).catch(function () {});
// ── 1. Public: the checker home ─────────────────────────────────────────
stepLogger.log('Home / public checker');
await page.goto(baseUrl + '/en', { waitUntil: 'domcontentloaded' });
await page.locator('h1, main').first().waitFor({ state: 'visible', timeout: 20000 }).catch(function () {});Checks run
Notes from the demo run
AI-generatedWe signed in with a one-time link, saved the Linear MCP server to a connector list, ran a real check against it, read the public report, and searched the 20,433-endpoint dataset. The product is unusually careful about what it claims: every screen repeats that checks are manual, that saving is not monitoring, and that tools are never executed. That restraint is the reason the report is believable. The sign-in link arrived in under ten seconds and dropped us straight into the workspace.
- The observed status is specific, not a green tickThe Linear check came back 'Reachable, sign-in required' with the line 'Private tools were not verified'. Distinguishing reachable-but-gated from actually-working is the whole value, and most uptime tools flatten it to up or down.
- Passwordless sign-in with no account setup at allEmail, one-time link, and you are in the workspace. No password, no profile step, no onboarding wizard. The link mail even says 'open it in the same browser that requested it', which is the right warning to give.
- The limits are stated before you hit them'1 of 50 saved', 'Watch remains unavailable for now', 'Automatic monitoring is not open'. Shipping an unfinished feature as a visible Soon badge instead of hiding it is a good call, and 20,433 indexed addresses with a sync timestamp makes the dataset feel maintained.
- The list-check rate limit only appears after you clickRunning Check this list twice in a few minutes returns 'A list check was already started. Try again in about 6 minutes.' The cooldown is invisible until you have already clicked, so the button looks broken. Disabling it with the remaining time as a tooltip would make it read as a rate limit rather than a failure.
- /en/check 404s, but the header Check link points at /enThe obvious guess for your public checker returns the 404 page. Anyone typing the URL from memory, or following an old link, lands there. A redirect from /en/check to /en is a one-liner.
- /en/app/account·Shows the account email; left out of a public share
11 visual changes
Share this run
Proof your app is not AI slop
This test was built for talandor.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.
































