In this video· click a step to jump to it
L
Passed ✓
Test recording
LLMWatch — authed app walkthrough v2
57,993 ms · 19,404 pixels changed
We built this regression test for llmwatch-rho.vercel.app — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against llmwatch-rho.vercel.app. Claim it into your own workspace and re-run it on every deploy — free.
export async function test(page, baseUrl, screenshotPath, stepLogger) {
const ENTRY = "/dashboard";
const MAXROUTES = 4;
const INTERACTIONS = [{"goto":"/dashboard","dismissModal":true,"click":{"name":"^create$|new project|add project"},"waitMs":1500,"shot":"new-project-form"},{"fills":[{"sel":"input[placeholder=\"Project name\"]","value":"Lastest Visual QA"}],"waitMs":700,"shot":"project-name-filled"},{"click":{"name":"^create$"},"waitMs":3000,"scroll":true,"shot":"project-created"},{"goto":"/dashboard","scroll":true,"waitMs":1500,"shot":"dashboard-with-project"}];
const shot = (n, s) => screenshotPath.replace('.png', '-' + n + '-' + s + '.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' });
for (const pat of ['**/cdn-cgi/scripts/**/email-decode.min.js','**/cdn-cgi/scripts/**/cloudflare-static/**','**/browser.sentry-cdn.com/**','**/cdn.segment.com/**','**/connect.facebook.net/**']) {
await page.route(pat, function (r) { return r.abort(); }).catch(function () {});
}
Checks run
19,404
Diff px
58s
Duration
B
Accessible
WCAG 2.2 · 83
A
Fast
Web Vitals · 100
Notes from the demo run
AI-generatedLLMWatch is a minimal LLM-observability dashboard — Projects, Logs and Alerts tabs over a quiet dark UI. New users land on a 'Let's get you set up' empty state, and project creation is inline (type a name, hit Create) with no modal detour.
Highlights
- Zero-friction first actionCreating a project is a single inline input + button on the dashboard — no modal, no wizard. Good for getting a new user to 'aha' fast.
- Scope matches the pitchLogs + Alerts + A/B testing line up exactly with the launch promise (compare cost/latency across prompt variants, warn on spend spikes).
Friction points
- Verify-email wall before the appSupabase email confirmation gates login; /dashboard redirects to /auth/login until verified, so a brand-new evaluator can't poke around immediately.
- Duplicated 'Sign Up' labelThe login screen shows 'Sign Up' both as the mode toggle and as the form submit — momentarily ambiguous which one you're clicking.
6 visual changes
Share this run
Earned · Lastest awards
Proof your app is not AI slop
Badges stay live, ratchet upward, only downgrade on confirmed regression.
57,239 test runs recorded · 1,156 products tested with Lastest
This test was built for llmwatch-rho.vercel.app — 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.

















