Recording of the visual regression run on app.heynaru.com · naru — app walkthrough.

In this video· click a step to jump to it

A
Passed ✓

Test recording

naru — app walkthrough

15,681 ms · 0 pixels changed · matches baseline

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

Take this test with you

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

export async function test(page, baseUrl, screenshotPath, stepLogger) {
  const AUTHED_PATH = '/chat';
  const BUSINESS_INTERACTIONS = [{slug:'chat-message',input:{labels:['mind','message','say','type','chat'],placeholders:["what's on your mind",'message','say','type','ask']},value:'I want to ship 3 Lastest demos today — keep me accountable and check in with me.',cta:{names:[/^send$/i,/submit/i,/^ask$/i]}}];
  const shot = (n, slug) => screenshotPath.replace('.png', `-${n}-${slug}.png`);
  const settle = () => page.waitForLoadState('networkidle', { timeout: 12000 }).catch(() => {});
  const acceptCookies = async () => { const b = page.getByRole('button', { name: /accept|allow all|got it|agree|ok$/i }).first(); if (await b.isVisible().catch(() => false)) await b.click().catch(() => {}); };
  const dismissModal = async () => { const b = page.getByRole('button', { name: /skip|dismiss|maybe later|not now|got it|close|^continue$|set up manually/i }).first(); if (await b.isVisible().catch(() => false)) await b.click({ timeout: 2500 }).catch(() => {}); };

  // ── Public phase ──
  stepLogger.log('Scenario 1: Homepage');
  await page.goto(baseUrl, { waitUntil: 'domcontentloaded' });
  await acceptCookies(); await settle();
+63 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
✓
Text
—
DOM
✓
Network
—
Console
✓
A11y
—
Perf
✓
URL
✓
Variables
—
Full report
Log in →
0
Diff px
16s
Duration
—
Accessible
A
Fast
Web Vitals · 100

Notes from the demo run

AI-generated

naru opens straight into a distraction-free, chat-first companion that asks what you'd like to be called before anything else, framing itself around 'who you're becoming, not just what you're checking off'. The whole product is one calm conversation pane.

Highlights
  • Conversational onboarding
    Instead of a form, naru asks for your name in the chat itself, then adapts — the first interaction already feels personal.
  • Honest-coaching positioning
    The opening line ('stay honest with who you're becoming') sets a clear, differentiated tone vs generic AI chat.
  • Single-pane focus
    No clutter — one input, one Send button, a quiet 'naru can be wrong' disclaimer. Easy to start talking.
Friction points
  • No visible history/nav
    From inside a chat there's no obvious way to reach past conversations, goals, or settings — a small sidebar would help returning users.
  • Enter ambiguity
    Pressing Enter didn't reliably submit during testing; the Send button was the dependable path.

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.
57,604 test runs recorded · 1,174 products tested with Lastest

This test was built for app.heynaru.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.