Recording of the visual regression run on app.howseen.ai · Howseen AI — app walkthrough.

In this video· click a step to jump to it

A
Passed

Test recording

Howseen AI — app walkthrough

63,918 ms · 82,781 pixels changed

We built this regression test for app.howseen.ai — it's yours to keep, free.

Take this test with you

This is a real Playwright test, recorded against app.howseen.ai. 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 APP = 'https://app.howseen.ai/onboarding';
  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); })()";

  await page.context().setExtraHTTPHeaders({ 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36' });
  await page.route('**/cdn-cgi/scripts/**', function (r) { r.abort(); }).catch(function () {});
  await page.route('**/*sentry-cdn.com/**', function (r) { r.abort(); }).catch(function () {});
  await page.route('**/connect.facebook.net/**', function (r) { r.abort(); }).catch(function () {});

  // ── 1. Public marketing home (context) ──────────────────────────────────
  stepLogger.log('Marketing home');
+99 more lines claim the test to get the full code.

Checks run

Run
Visual
60.89%
Text
DOM
Network
+48 −24
Console
A11y
A
Perf
816 over
URL
Variables
Full report
Log in →
82,781
Diff px
1m 04s
Duration
A
Accessible
WCAG 2.2 · 95
C
Fast
Web Vitals · 70

Notes from the demo run

AI-generated

We signed into Howseen with Google and ran your full onboarding on a real brand (lastest.cloud) end to end, from the site box through to the plan step. The thing that lands is how much you derive from one domain: brand name, description, industry, three adjectives, a product list, a competitor set, topics and roughly fifty buyer prompts, all pre-filled and editable before anyone has paid you anything. The split layout, wizard on the left and a live preview panel on the right, means every step already shows the shape of the thing being bought. Two snags are worth a look, both cheap to fix.

Highlights
  • One domain does all the work
    Typing lastest.cloud alone produced the brand profile, the adjectives (innovative / supportive / technical), the product list and BackstopJS, Percy and Applitools as competitors. That is a lot of perceived value before any payment, and it is the strongest part of your funnel.
  • The prompt review earns the price
    Seeing the ~50 actual buyer questions ('Are there any open-source alternatives to Applitools?') grouped by topic, with the option to untick and add your own, is the moment the product stops being abstract. Worth surfacing earlier than step 6.
  • The gap chart frames the pitch honestly
    The visibility-vs-industry bar (12% vs 38% industry vs 61% BackstopJS) is labelled 'Scenario, not a measured figure'. Labelling an illustrative number as illustrative is rarer than it should be, and it builds trust right before the paywall.
Friction points
  • Email signup cannot be completed
    On /signup the Cloudflare Turnstile widget never renders, so the hidden cf-turnstile-response field stays empty and the 'Create account' button is permanently disabled, no error shown. Anyone who does not want to use Google simply cannot sign up. Worth checking the Turnstile sitekey and whether the script is being blocked on that route.
  • Onboarding progress is not saved
    Reloading anywhere in the wizard drops you back to step 1, so the ~25s site analysis and every edit are lost. Persisting the draft per user (or even to localStorage) would recover anyone who got interrupted, which at eight steps will be a meaningful share.
Couldn't reach
  • /dashboard·404 for a pre-payment account; only /onboarding is reachable
  • checkout·Deliberately not entered. We never complete payment flows on a founder's product.

4 visual changes

Step 141,071 px changed
Before
Before
After
After
Diff
Diff
Step 53,078 px changed
Before
Before
After
After
Diff
Diff
Step 830,049 px changed
Before
Before
After
After
Diff
Diff
Step 98,583 px changed
Before
Before
After
After
Diff
Diff

Share this run

Earned · Lastest awards

Proof your app is not AI slop

LASTEST
starter
regressions
0
Badges stay live, ratchet upward, only downgrade on confirmed regression.
56,846 test runs recorded · 1,040 products tested with Lastest

This test was built for app.howseen.ai — 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.