Recording of the visual regression run on usefold.io · usefold — app walkthrough.

In this video· click a step to jump to it

U
Passed ✓

Test recording

usefold — app walkthrough

58,086 ms · 690 pixels changed

We built this regression test for usefold.io — it's yours to keep, free.

Take this test with you

This is a real Playwright test, recorded against usefold.io. Claim it into your own workspace and re-run it on every deploy — free.

export async function test(page, baseUrl, screenshotPath, stepLogger) {
  const shot = (n, slug) => screenshotPath.replace('.png', `-${n}-${slug}.png`);
  const settle = async () => {
    await page.waitForLoadState('networkidle').catch(() => {});
    await page.locator('h1, h2, main, [role="main"]').first().waitFor({ state: 'visible', timeout: 5000 }).catch(() => {});
    await page.waitForTimeout(600);
  };

  // Block noisy third-party scripts so consoleErrorMode does not red the test
  await page.route(/(?:cloudflareinsights|tawk\.to|posthog\.com|facebook\.net|googletagmanager|google-analytics|googleads|googleadservices|gtm\.js|doubleclick\.net|hotjar\.com|fullstory|segment\.io|intercom|crisp\.chat)/i, route => route.abort()).catch(() => {});

  await page.context().setExtraHTTPHeaders({
+146 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
0.42%
Text
—
DOM
✓
Network
+154 −0
Console
✓
A11y
—
Perf
99 over
URL
✓
Variables
—
Full report
Log in →
690
Diff px
58s
Duration
—
Accessible
A
Fast
Web Vitals · 100

Notes from the demo run

AI-generated

Fold's hero ('You're spending on ads that might be losing money') leads with revenue risk, not feature claims, which is unusually direct for a SaaS landing page. The signup flow runs Supabase email+password with a confirmation gate, then a clean 3-step onboarding wizard (website URL, business profile, connect data), then drops straight into a sample-populated dashboard so a brand-new visitor can see what the product is for before doing any work. Once inside, the sidebar exposes 9 distinct surfaces (Overview, Analytics, Fix-It Playbooks, Growth, Customers, AI Advisor, Data Sources, Settings, Advanced) with 14 integration providers ready to wire in.

Highlights
  • Sample-data dashboard pre-populated
    Brand-new accounts land on an Overview with $10.2K revenue, 3.5K sessions, $57.8K ad spend, 93 new customers, CAC $621, +69% / +59% / +62% deltas. A 'DEMO Viewing sample data. Connect real integrations to see live metrics.' banner sets expectations cleanly. This is a textbook empty-state, evaluators get the product before they commit data.
  • AI Advisor is a real surface, not a marketing claim
    /dashboard?tab=ai renders a 'Daily AI Insight' panel with Focus-goal chips (Grow MRR, Reduce Churn, Scale Ads), a Generate Insight button, and a chats panel — it's wired up before any data is connected. The 'Live Data Context' pill in the corner is a strong trust signal for a tab that's often vapor in competing products.
  • Onboarding wizard can be skipped
    Step 1 of 3 (paste website URL) has a 'Skip' link and a 'Skip scan — enter description manually' button. The wizard does not gate access to the dashboard, which is the right call — most evaluators want to peek at /dashboard before describing their business.
  • Integration catalog is the asset
    Data Sources tab shows 14 platforms across Payments & Revenue (4), Web Analytics (3), Advertising (1), Email & Marketing (4), Stores (2). Clear category tabs, search bar at the top, 'Not connected' status pills on each row. This is the page evaluators will spend the most time on.
Friction points
  • Connect Stripe modal blocks the dashboard on every fresh load
    Even after dismissing it with 'Maybe later — show me where to connect', a hard reload of /dashboard re-asserts the modal. For evaluators bouncing between tabs and pages this means dismissing it repeatedly. A session-scoped or once-per-day dismiss would smooth the first hour of evaluation.
  • Tab navigation uses query params but direct URLs 404
    Clicking the Analytics sidebar button routes to /dashboard?tab=analytics, which works. But a deep link to /analytics (or /advisor / /customers) returns a 404. Founders sharing 'check our AI Advisor at /advisor' from chat will hit a dead end. Either redirect the bare paths to /dashboard?tab=... or make them first-class routes.
  • /blog has a 2026-05-29 publication date issue
    Several blog cards show 'May 25, 2026' which is 4 days in the future from when this run was captured. Likely a placeholder-content date or a timezone issue in the publish-date renderer.

6 visual changes

Step 6115 px changed
Before
Before
After
After
Diff
Diff
Step 7115 px changed
Before
Before
After
After
Diff
Diff
Step 8115 px changed
Before
Before
After
After
Diff
Diff
Step 9115 px changed
Before
Before
After
After
Diff
Diff
Step 10115 px changed
Before
Before
After
After
Diff
Diff
Step 11115 px changed
Before
Before
After
After
Diff
Diff

Share this run

Earned · Lastest awards

Proof your app is not AI slop

LASTEST
starter
tests
all passing
regressions
0
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 usefold.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.