Recording of the visual regression run on app.slugy.co · Slugy — link workspace walkthrough.

In this video· click a step to jump to it

A
Passed

Test recording

Slugy — link workspace walkthrough

129,138 ms · 59,533 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against app.slugy.co. 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 WS = '/lastest-studio';
  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 () {});

  // ── Scenario 1 — public marketing home (context) ──────────────────────────
  stepLogger.log('Scenario 1: Slugy pricing (public)');
  await page.goto('https://slugy.co/pricing', { waitUntil: 'domcontentloaded' });
+92 more lines claim the test to get the full code.

Checks run

Run
Visual
94.53%
Text
DOM
Network
+44 −44
Console
A11y
A
Perf
385 over
URL
66 diverged
Variables
Full report
Log in →
59,533
Diff px
2m 09s
Duration
A
Accessible
WCAG 2.2 · 90
B
Fast
Web Vitals · 85

Notes from the demo run

AI-generated

We signed up for Slugy, verified the email, ran the onboarding and created the 'Lastest Studio' workspace, then tried to shorten a real campaign link. The workspace itself is genuinely nice — the link composer builds a QR code and an OG preview live as you type, and the usage meter sits permanently in the sidebar so you always know where you are against the quota. One thing stopped us cold: on a brand-new workspace that hasn't been through a plan checkout, POST /api/workspace/<slug>/link returns 401 and the composer just sits there. No error toast, no message — the dialog stays open and the link is silently never created.

Highlights
  • The composer previews as you type
    QR code and OG link-preview render live while the destination URL is still being typed, and the short-link field pairs a domain dropdown with the slug. It makes the 'is this right?' check instant.
  • Usage is always visible
    Events 0 of 1k and Links 0 of 20 with the reset date live in the sidebar rather than being buried in billing — you never have to go looking for your quota.
  • Onboarding asks one useful question
    'What are you planning to use Slugy for?' with six concrete options, then workspace name with the slug auto-derived. Two screens, no fluff.
Friction points
  • Link creation fails silently with a 401
    On a fresh workspace, clicking Create link fires POST /api/workspace/lastest-studio/link → 401 and nothing surfaces in the UI: no toast, no inline error, the dialog stays open and the typed link is lost. Surfacing the API error (and what unblocks it) would stop new users concluding the product is broken.
  • The free 'Basic Forever' plan routes to a paid checkout
    'Get Basic' on the plans screen links to /api/subscription/checkout and lands on a Polar checkout page. For a plan labelled Forever / $0 that reads as a bait-and-switch even though it probably isn't — and it's the step that gates link creation above.

3 visual changes

Step 130,140 px changed
Before
Before
After
After
Diff
Diff
Step 512,816 px changed
Before
Before
After
After
Diff
Diff
Step 1116,577 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,767 test runs recorded · 1,011 products tested with Lastest

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