Recording of the visual regression run on www.govchime.com · GovChime — federal contracting walkthrough.

In this video· click a step to jump to it

W
Passed ✓

Test recording

GovChime — federal contracting walkthrough

106,149 ms · 165,155 pixels changed

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

Take this test with you

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

export async function test(page, baseUrl, screenshotPath, stepLogger) {
  const STAMP = Date.now().toString(36);
  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); })()";

  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/**/email-decode.min.js', function (r) { r.abort(); }).catch(function () {});
  await page.route('**/*posthog*/**', function (r) { r.abort(); }).catch(function () {});

  // ─── 1. Public home ───────────────────────────────────────────────────────
  stepLogger.log('Home - what GovChime sells');
  await page.goto(baseUrl, { waitUntil: 'domcontentloaded' });
+117 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
82.72%
Text
—
DOM
✓
Network
+75 −75
Console
✓
A11y
A
Perf
1110 over
URL
150 diverged
Variables
—
Full report
Log in →
165,155
Diff px
1m 46s
Duration
A
Accessible
WCAG 2.2 · 91
C
Fast
Web Vitals · 70

Notes from the demo run

AI-generated

We signed in, searched 11,811 open solicitations for cybersecurity work, saved the search as an alert, opened a live NIH combined synopsis, then walked awards, vendor and agency profiles and all three analytics surfaces. What stands out is that none of it is gated: 760K award notices, incumbent analysis and spending trends are all sitting behind a free account with no card. Most tools in this category put the award history behind a five-figure seat.

Highlights
  • Award Overview answers the only question that matters
    On the NIH solicitation your detail page runs an incumbent lookup and says plainly "No incumbent identified — no matching prior contract within an 18 month window using the same agency, NAICS, place-of-performance state and PSC." Stating the matching window is what makes that trustworthy rather than a shrug.
  • Save Search is one dialog, and it becomes an alert
    Search, Save Search, name it, done — and it lands in Saved Searches already marked Active with an alert attached. No separate "now create an alert" step, which is where most tools lose people.
  • The onboarding skips cleanly
    "Do you have a UEI?" -> "No, I don't have a UEI / Skip and continue" drops you straight onto Active Opportunities. A wizard you can decline in one click is rarer than it should be.
  • An MCP endpoint for agents
    Offering GovChime MCP with a paste-this-prompt setup means an analyst's assistant can query opportunities and incumbents directly. Very few data products in this space have noticed that yet.
Friction points
  • Email verification bounces you to an empty login form
    Clicking the verify link lands on /login with no "your email is confirmed, sign in to continue" message and no email pre-filled — it reads as if the link failed. Carrying a success flag through to the login page would remove that moment of doubt.
  • Saved searches accept duplicate names silently
    Three of our runs each created a separate saved search, and the list shows three rows with near-identical names and the same "All opportunities" description. A soft warning on an identical query, or showing the actual filter terms in the description column, would keep the workspace readable.
Couldn't reach
  • /pricing·We stop short of anything resembling checkout on someone else's product.

9 visual changes

Step 1770 px changed
Before
Before
After
After
Diff
Diff
Step 318,283 px changed
Before
Before
After
After
Diff
Diff
Step 4142 px changed
Before
Before
After
After
Diff
Diff
Step 51,313 px changed
Before
Before
After
After
Diff
Diff
Step 613,407 px changed
Before
Before
After
After
Diff
Diff
Step 7120,308 px changed
Before
Before
After
After
Diff
Diff
Step 9657 px changed
Before
Before
After
After
Diff
Diff
Step 139,775 px changed
Before
Before
After
After
Diff
Diff
Step 14500 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.
57,226 test runs recorded · 1,151 products tested with Lastest

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