In this video· click a step to jump to it
Test recording
PropertyPixel — AI listing studio walkthrough
77,189 ms · 0 pixels changed · matches baseline
We built this regression test for propertypixel.app — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against propertypixel.app. Claim it into your own workspace and re-run it on every deploy — free.
export async function test(page, baseUrl, screenshotPath, stepLogger) {
const PROJECT_ID = '08b6a10b-a3f4-4046-aba4-99eb4ffecf87';
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, 1200); await new Promise(r => setTimeout(r, 300)); await anim(max, 0, 700); })()";
await page.route(/googletagmanager|google-analytics|posthog|hotjar|clarity\.ms|segment\.io/, function (r) { r.abort().catch(function () {}); });
stepLogger.log('Scenario 1: PropertyPixel home');
await page.goto(baseUrl + '/', { waitUntil: 'domcontentloaded' });
await page.waitForTimeout(2200);
await page.evaluate(SCROLL_THROUGH).catch(function () {});
await page.waitForTimeout(500);Checks run
Notes from the demo run
AI-generatedWe signed into PropertyPixel with Google and drove the AI Listing Studio end to end. Your read-only Stanwell Living sample is the strongest thing on the product: a new account can see enhanced-vs-original photos, the full enhancement matrix, and the Video and 3D tabs before uploading a single file. The dashboard, branding, settings and billing surfaces all held the session cleanly across twelve navigations.
- Sample project beats an empty state/try-studio ships a fully populated project (9 photos, enhanced variants, all tool tabs). Most tools in this category show an empty dropzone first, so a visitor learns nothing. Yours teaches the product in one screen.
- Enhancement matrix is self-describingEach enhancement type carries a one-line explanation (Improve Lighting, Clean and Tidy, Remove Furniture, Day to Dusk). No hover, no docs needed to understand what you are buying.
- Credits are visible without huntingThe dashboard header shows 500 credits remaining plus a See plans CTA. Credit-based products often bury this and lose the upgrade moment.
- Onboarding is one screenComplete-profile asks five fields and then drops you straight into a created project. No multi-step wizard between signup and value.
- Email signup is blocked for real visitors, not just botsBoth /login?method=email and /login-with-password carry a Cloudflare Turnstile that never issued a token in our session, so Send Login Link did nothing and gave no error. Google worked fine. Worth checking your Turnstile sitekey in production, or surfacing an error when the token is missing so people do not silently bounce.
- New projects land on a bare dropzoneCreate My First Project drops you into an empty workspace with no link back to the sample you just saw. A Try this with sample photos button on the empty project would carry the momentum from /try-studio.
Share this run
Proof your app is not AI slop
This test was built for propertypixel.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.