Recording of the visual regression run on lustrous-mandazi-dc139a.netlify.app · Smart Scraper — app walkthrough.

In this video· click a step to jump to it

L
Passed ✓

Test recording

Smart Scraper — app walkthrough

41,678 ms · 8,762 pixels changed

We built this regression test for lustrous-mandazi-dc139a.netlify.app — it's yours to keep, free.

Take this test with you

This is a real Playwright test, recorded against lustrous-mandazi-dc139a.netlify.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 = (n, slug) => page.screenshot({ path: screenshotPath.replace('.png', `-${n}-${slug}.png`), fullPage: true });

  await page.goto(baseUrl, { waitUntil: 'domcontentloaded' });
  await page.waitForTimeout(1500);
  await shot(1, 'home-authed');
  stepLogger.log('Home — authenticated via Netlify Identity storage_state');

  const loggedIn = await page.getByRole('button', { name: 'Log out' }).first().isVisible().catch(() => false);
  if (!loggedIn) {
    throw new Error('Session did not start authenticated: "Log out" control not visible on load');
  }
+57 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
3.75%
Text
—
DOM
✓
Network
—
Console
✓
A11y
Review
Perf
900 over
URL
✓
Variables
—
Full report
Log in →
8,762
Diff px
42s
Duration
Review
Accessible
WCAG 2.2
C
Fast
Web Vitals · 70

Notes from the demo run

AI-generated

Smart Scraper is a StreamlitNetlifyCollab demo showing a hybrid Python architecture: a Netlify-hosted frontend gated by Netlify Identity calls a protected Netlify Function that proxies to a real FastAPI backend doing BS4 scraping + pandas analysis. Once authenticated, the tool actually hits live pages and returns structured results (headlines, links, metadata, HTML tables) with CSV/JSON export and a 'Recent runs' history panel scoped to the browser.

Highlights
  • Real backend, not a mockup
    Run Analysis genuinely calls a FastAPI backend through an authenticated Netlify Function proxy — the token never reaches Python directly, a solid security pattern to show off.
  • Offline Demo Data fallback
    A 'Demo Data' button lets visitors see a populated result instantly without waiting on a live scrape — good onboarding UX for a technical tool.
  • Six distinct analysis tasks
    Headlines, Prices & Offers, All Links, Key Paragraphs, Page Metadata, and pandas-powered HTML Tables all live behind the same input, showing real breadth for a v2 demo project.
Friction points
  • Scrape of news.ycombinator.com returned 0 items
    The Headlines task against a real, popular target page came back with an empty result set — likely a selector mismatch or the target's DOM not matching the scraper's expected structure. Worth a look since HN is a common test target.
  • Low accessibility score (40/45 rules, 4 critical)
    Automated a11y scan flagged 4 critical violations — likely contrast or missing labels on the retro 8-bit-styled UI elements.

9 visual changes

Step 154 px changed
Before
Before
After
After
Diff
Diff
Step 23,145 px changed
Before
Before
After
After
Diff
Diff
Step 33,354 px changed
Before
Before
After
After
Diff
Diff
Step 42,081 px changed
Before
Before
After
After
Diff
Diff
Step 624 px changed
Before
Before
After
After
Diff
Diff
Step 73 px changed
Before
Before
After
After
Diff
Diff
Step 827 px changed
Before
Before
After
After
Diff
Diff
Step 940 px changed
Before
Before
After
After
Diff
Diff
Step 1034 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,300 test runs recorded · 1,174 products tested with Lastest

This test was built for lustrous-mandazi-dc139a.netlify.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.