In this video· click a step to jump to it
G
Passed ✓
Test recording
GhostlyX — app walkthrough
23,961 ms · 2,607 pixels changed
We built this regression test for ghostlyx.com — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against ghostlyx.com. Claim it into your own workspace and re-run it on every deploy — free.
export async function test(page, baseUrl, screenshotPath, stepLogger) {
const APP_ENTRY = "https://ghostlyx.com/app";
const PUBLIC_HOME = "https://ghostlyx.com/";
const BUSINESS = {"input_placeholders":["website","domain","url","example.com"],"value":"lastest.cloud","cta_names":["add site","add website","add","create","save"]};
const shot = (n, sl) => screenshotPath.replace('.png', `-${n}-${sl}.png`);
const settle = () => page.waitForLoadState('networkidle').catch(() => {});
const hydrate = async () => { await settle(); await page.locator('h1,h2,main,[role=main],[data-testid]').first().waitFor({state:'visible',timeout:6000}).catch(()=>{}); await page.waitForTimeout(900); };
const dismiss = async () => {
for (const re of [/skip|dismiss|got it|maybe later|not now|close|continue|next|finish|let'?s go|get started/i]) {
const b = page.getByRole('button', { name: re }).first();
if (await b.isVisible().catch(()=>false)) { await b.click({timeout:1500}).catch(()=>{}); await page.waitForTimeout(600); }
}Checks run
2,607
Diff px
24s
Duration
—
Accessible
A
Fast
Web Vitals · 100
Notes from the demo run
AI-generatedGhostlyX is a privacy-first, cookieless web-analytics dashboard. Email signup auto-creates a session and lands straight on the /app surface — an 'All sites / No sites yet / Add your first site' empty state with a deep left nav (Compare, Heatmaps, Traffic Map, Session Replays, Visitor Log, AI Insights).
Highlights
- Straight into the productNo email-verify wall: signup drops you on the authed dashboard with a clear zero-state and an obvious 'Add your first site' next step.
- Deep feature surface, clearly gatedThe nav shows the full feature set (heatmaps, session replays, AI insights) with lock icons on paid items — honest and legible for a free user.
Friction points
- Password rule only on submitThe 'must contain a number' rule isn't shown until submit; a letters-only first attempt is silently rejected.
- Debug 422 page on validation failureA failed register rendered a raw 'Oops! 422 Unprocessable Content' debug page instead of an inline error — worth disabling APP_DEBUG in production.
Visual change
Share this run
Earned · Lastest awards
Proof your app is not AI slop
Badges stay live, ratchet upward, only downgrade on confirmed regression.
57,604 test runs recorded · 1,174 products tested with Lastest
This test was built for ghostlyx.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.


