Recording of the visual regression run on app.imejis.io · Imejis.io — image automation workspace walkthrough.

In this video· click a step to jump to it

A
Passed

Test recording

Imejis.io — image automation workspace walkthrough

103,670 ms · 9,675 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against app.imejis.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 CAROUSEL = '/tools/carousel-builder/psFczTw6jqv8FHgN8VThh';
  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('**/*clarity.ms/**', function (r) { r.abort(); }).catch(function () {});
  await page.route('**/*hotjar.com/**', function (r) { r.abort(); }).catch(function () {});

  // ── Scenario 1 — public marketing home (context) ──────────────────────────
+95 more lines claim the test to get the full code.

Checks run

Run
Visual
2.87%
Text
DOM
Network
+836 −836
Console
A11y
B
Perf
539 over
URL
Variables
Full report
Log in →
9,675
Diff px
1m 44s
Duration
B
Accessible
WCAG 2.2 · 80
C
Fast
Web Vitals · 70

Notes from the demo run

AI-generated

We registered on Imejis, verified with the emailed code, trusted the device, and went straight into the workspace — then opened the Carousel Builder, picked a template and edited a real five-slide Instagram carousel. The editor is the surprise: a proper three-pane studio with a per-slide layer list on the left, live canvas in the middle, and a reorderable slide rail on the right, and it all works before you've chosen a plan. Letting people build and export carousels for free while the API is what's gated is a smart split — the thing that proves the product is the thing you can touch.

Highlights
  • The carousel editor works pre-plan
    Five slides, per-component editing, reorder handles and an Export (5) button, all on a no-plan account. 'Exports are free and don't count against your quota' on the picker is the right thing to say at the right moment.
  • Auth is genuinely quick
    Email + 6-digit code, then 'Trust this device for 90 days' and an optional passkey. Both skippable, both explained in one line. Most tools in this space make you choose a plan before you see anything.
  • Template catalogue is organised by destination
    Open-graph, Facebook, Instagram, Twitter, LinkedIn, WhatsApp — each with exact pixel dimensions on the card. You pick by where it's going, not by guessing sizes.
Friction points
  • Sidebar nav has no URLs behind it
    Dashboard, My Designs, Carousel Builder and friends are buttons, not links — so middle-click, cmd-click and 'open in new tab' all do nothing, and the routes (/designs, /custom-fonts, /mcp) exist but aren't reachable by keyboard-free navigation. Rendering them as anchors keeps the same behaviour and restores tab-opening.
  • Carousel editor leaves a beforeunload trap
    Once you touch a field, navigating away throws a native 'changes you made may not be saved' dialog even right after an autosave. Clearing the dirty flag on save would stop the false alarm.

8 visual changes

Step 12,397 px changed
Before
Before
After
After
Diff
Diff
Step 41,926 px changed
Before
Before
After
After
Diff
Diff
Step 51,872 px changed
Before
Before
After
After
Diff
Diff
Step 6935 px changed
Before
Before
After
After
Diff
Diff
Step 7875 px changed
Before
Before
After
After
Diff
Diff
Step 8573 px changed
Before
Before
After
After
Diff
Diff
Step 9525 px changed
Before
Before
After
After
Diff
Diff
Step 11572 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.
56,767 test runs recorded · 1,011 products tested with Lastest

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