Recording of the visual regression run on www.joygram.io · Joygram — app walkthrough.

In this video· click a step to jump to it

W
Passed

Test recording

Joygram — app walkthrough

78,147 ms · 24,636 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against www.joygram.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 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); })()";
  const SESSION_COOKIES = [
  {
    "name": "_ga",
    "value": "GA1.1.604343334.1789564391",
    "url": "https://joygram.io/"
  },
  {
    "name": "_ga_0Y77X4THNK",
    "value": "GS2.1.s1789564391$o1$g1$t1789564985$j22$l0$h0",
+213 more lines claim the test to get the full code.

Checks run

Run
Visual
4.38%
Text
DOM
Network
+5892 −0
Console
12 new
A11y
A
Perf
URL
Variables
Full report
Log in →
24,636
Diff px
1m 18s
Duration
A
Accessible
WCAG 2.2 · 100
C
Fast
Web Vitals · 70

Notes from the demo run

AI-generated

We signed up to Joygram, confirmed the address, and then actually built a card: dashboard, account, template picker, then the three-step interactive-card flow with a real recipient, tone and message. For a product whose promise is 'a cute digital gift in 30 seconds', the build flow lives up to the headline - the picker is the single best screen in the product.

Highlights
  • The picker sells the product
    Eighteen templates shown as live tiles (Classic Card, Love Wheel, Scrapbook, Group Voice Bouquet...) with the free ones marked. A visitor understands the range in one screen, which is exactly what a gift product needs.
  • An empty state that asks for one thing
    'No cards yet - create your first card and make someone smile. It only takes a minute.' One CTA, no dashboard clutter. Rare and right.
Friction points
  • Occasion is a custom dropdown that blocks Next silently
    On Step 2 we filled recipient, sender, relationship, tone and the message, but 'Occasion' is a custom control rather than a native select - it stayed empty and 'Next Step' stayed greyed out with nothing saying which field was missing. An inline 'Occasion is required' would unstick anyone who fills the form top-to-bottom the way we did.

5 visual changes

Step 122,704 px changed
Before
Before
After
After
Diff
Diff
Step 4805 px changed
Before
Before
After
After
Diff
Diff
Step 5737 px changed
Before
Before
After
After
Diff
Diff
Step 1166 px changed
Before
Before
After
After
Diff
Diff
Step 12324 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
a11y
WCAG AA
regressions
0
Badges stay live, ratchet upward, only downgrade on confirmed regression.
56,423 test runs recorded · 962 products tested with Lastest

This test was built for www.joygram.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.