In this video· click a step to jump to it
S
Passed ✓
Test recording
SiteSay — authed app walkthrough v2
56,757 ms · 6,300 pixels changed
We built this regression test for sitesay.io — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against sitesay.io. 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 = 3;
const INTERACTIONS = [{"goto":"/projects/create","dismissModal":true,"fills":[{"sel":"#name","value":"Lastest Demo Site"},{"sel":"#website","value":"https://lastest.cloud"}],"waitMs":700,"shot":"new-project-form"},{"click":{"name":"create project"},"waitMs":3000,"scroll":true,"shot":"project-created"},{"scroll":true,"waitMs":900,"shot":"project-embed"},{"goto":"/projects","scroll":true,"waitMs":1200,"shot":"projects-list"},{"goto":"/dashboard","scroll":true,"waitMs":1200,"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
6,300
Diff px
57s
Duration
C
Accessible
WCAG 2.2 · 70
A
Fast
Web Vitals · 100
Notes from the demo run
AI-generatedSiteSay is a feedback-widget tool (Laravel) that drops users straight into a 'Welcome back' dashboard after signup. Navigation is lean — Dashboard, Projects, Profile — and creating a project is a tidy two-field form (site name + website URL). A 7-day free trial is toggled on at signup, no card required.
Highlights
- Instant time-to-valueSignup auto-sessions straight into the dashboard with the trial enabled — no email-verify wall before you can create your first project.
- Minimal create flowNew project = name + website URL + Create. The fewer fields, the faster a visitor gets to the embed snippet.
Friction points
- Plus-aliased email signups fail silentlySigning up with a '[email protected]' address stalls on /signup (or shows 'email already taken') with no clear error; a non-aliased address worked. Loosening the email validator would stop losing real users who alias.
- Persistent verification bannerA 'Resend verification email' banner rides along the top of the authenticated app even while you can use it — worth softening once the core flow works.
5 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 sitesay.io — 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.














