Test recording
Quetzal — app walkthrough
81,402 ms · 0 pixels changed · matches baseline
We built this regression test for quetzaltech.app — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against quetzaltech.app. Claim it into your own workspace and re-run it on every deploy — free.
export async function test(page, baseUrl, screenshotPath, stepLogger) {
const shot = (i, slug) => screenshotPath.replace('.png', '-' + i + '-' + 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); })()";
const findings = [];
let actions = 0;
await page.context().setExtraHTTPHeaders({ 'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36" });
for (const pattern of ['**/cdn-cgi/scripts/**/email-decode.min.js', '**/sentry-cdn.com/**', '**/browser.sentry-cdn.com/**', '**/cdn.segment.com/**', '**/connect.facebook.net/**', '**/*.posthog.com/**', '**/googletagmanager.com/**', '**/google-analytics.com/**']) {
await page.route(pattern, function (r) { r.abort(); }).catch(function () {});
}
// ─── Replay the pre-registered demo session (captured host-side) ───Checks run
Notes from the demo run
AI-generatedQuetzal is one of the most complete onboarding-to-value paths we've walked on a recent launch: you paste a URL, it reads your site, pre-fills your sector, voice and palette, and by the end of signup you already have a drafted first week of content waiting. The app behind it is real — /app, /agent, /posts, /analytics, /brand, /trends and /settings are all built out, not placeholders. We recorded the whole thing end to end.
- Onboarding produces artefacts, not settingsMost onboarding wizards end on a dashboard. Yours ends on a generated first week of posts ('Tu primera semana, ya está redactada'). That's the single strongest thing in the product and it happens before anyone pays.
- Voice extraction from a URL actually workedWe pasted lastest.cloud and your extractor came back with 'technical, pragmatic, direct, confident' plus the right sector. That's an accurate read, and it removes the blank-page problem.
- Empty states refuse to fake data/analytics says plainly 'No mostramos estimaciones ni datos de ejemplo.' Refusing to show fake charts in an empty workspace is a trust decision most tools get wrong.
- Agent is scoped to real dataThe /agent console states it only speaks from your actual workspace and will tell you when something doesn't exist yet. Good guardrail, and worth saying louder on the marketing page.
- The onboarding Continue button is disabled with no visible reasonOn the '¿Qué vendes?' step, Continuar stays disabled until a card is selected, but nothing on screen says a selection is required — the button just looks broken. An automated pass (and a distracted human) stalls there. One line of helper text under the cards, or an enabled button that shows a validation hint on click, fixes it.
- Signup is Spanish-only while the app ships an EN toggle/signup renders entirely in Spanish, but the authed app has an EN/ES switcher in the header. English-speaking visitors from your X launch hit the Spanish wall before they ever see the toggle. Detecting Accept-Language on the marketing and signup pages would recover them.
Share this run
Proof your app is not AI slop
This test was built for quetzaltech.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.