Recording of the visual regression run on www.co-span.com · Co—span — app walkthrough.

In this video· click a step to jump to it

W
Passed ✓

Test recording

Co—span — app walkthrough

80,329 ms · 118,383 pixels changed

We built this regression test for www.co-span.com — it's yours to keep, free.

Take this test with you

This is a real Playwright test, recorded against www.co-span.com. 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, s) => screenshotPath.replace('.png', '-' + n + '-' + s + '.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, 1100); await new Promise(r => setTimeout(r, 280)); await anim(max, 0, 650); })()";

  await page.context().setExtraHTTPHeaders({ 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36' });
  for (const pattern of ['**/cdn-cgi/scripts/**', '**/sentry-cdn.com/**', '**/cdn.segment.com/**', '**/connect.facebook.net/**', '**/*.posthog.com/**', '**/google-analytics.com/**', '**/googletagmanager.com/**', '**/fundingchoicesmessages.google.com/**', '**/pagead2.googlesyndication.com/**']) {
    await page.route(pattern, function (r) { r.abort(); }).catch(function () {});
  }
  const DOC = '/documents/9277e10a-a216-41ff-9e72-0847403f97a8';

  stepLogger.log('Authed 1: document library');
  await page.goto(baseUrl + '/documents', { waitUntil: 'domcontentloaded' });
+74 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
85.94%
Text
—
DOM
✓
Network
+693 −605
Console
11 new
A11y
A
Perf
836 over
URL
154 diverged
Variables
—
Full report
Log in →
118,383
Diff px
1m 20s
Duration
A
Accessible
WCAG 2.2 · 100
C
Fast
Web Vitals · 70

Notes from the demo run

AI-generated

We signed up for Co—span and drove the writing workspace end to end: the document library, the seeded Pelican draft with its agent margin notes, live typing into the editor, the Connect-Cordelia panel, the share dialog, twilight mode, and a brand-new document written from scratch. Signup was the fastest of the five products we ran today: email, password, and you land straight in a document with no verification detour. The margin-note layout is the thing that makes the product legible in one screenshot.

Highlights
  • Zero-friction signup
    Email and password drops you directly into a working document. No verify-your-email round trip, no empty state. Rare, and it is the reason we got a full authenticated walk on the first attempt.
  • The seeded draft does the explaining
    'The Pelican Who Rode a Bicycle' arrives with an IDEA, a QUESTION and a SUGGESTED EDIT already in the margin. A new user understands the product before reading a word of copy.
  • Authorship split is a great detail
    'You authored 301 words. Cordelia authored 16 words.' with a Show authorship toggle. That single line answers the trust question every AI writing tool gets asked.
  • Intentions block above the draft
    Purpose / Audience / Preserve pinned at the top frames what the agent is optimising for. It reads as a deliberate design decision rather than a prompt box.
Friction points
  • The assistant reads as connected when it is not
    The margin notes are stamped 'Cordelia - AI - 26 min ago' while the Assistant panel says 'Disconnected / Never connected'. A first-time user cannot tell the seeded sample apart from their own agent's output. Labelling the seeded notes 'sample' would fix it in one line.
  • Margin cards did not respond to a click
    Clicking the SUGGESTED EDIT card produced a pixel-identical frame in our run, so there is no visible accept/dismiss affordance on the card itself. If accepting an edit is the core loop, it wants a visible control.

9 visual changes

Step 11,289 px changed
Before
Before
After
After
Diff
Diff
Step 21,303 px changed
Before
Before
After
After
Diff
Diff
Step 31,805 px changed
Before
Before
After
After
Diff
Diff
Step 411,623 px changed
Before
Before
After
After
Diff
Diff
Step 555,195 px changed
Before
Before
After
After
Diff
Diff
Step 629,773 px changed
Before
Before
After
After
Diff
Diff
Step 78,592 px changed
Before
Before
After
After
Diff
Diff
Step 88,592 px changed
Before
Before
After
After
Diff
Diff
Step 11211 px changed
Before
Before
After
After
Diff
Diff

Share this run

Earned · Lastest awards

Proof your app is not AI slop

LASTEST
starter
a11y
WCAG AA
regressions
0
Badges stay live, ratchet upward, only downgrade on confirmed regression.
57,226 test runs recorded · 1,151 products tested with Lastest

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