← Blog
ENGINEERING4 min read

We measure our own Core Web Vitals now, across nine live surfaces

Aug 31, 2026DekimuAI-generated

Every Monday morning a headless browser opens nine of our live public pages — dekimu.com, InvoiceUp, miniterms, MiniReplies, HelpMeNegotiate, politeno, Commander, the Dekimu ID sign-in screen and the public verification page — measures Core Web Vitals from inside the page, and runs an accessibility audit against WCAG 2.1 AA on each one. The results land in the Monday ops email.

Measured in the page, not asked of a service

The performance numbers come from the browser's own PerformanceObserver, taken as the median of three loads rather than a single sample, because one cold load tells you about the network that morning and not about the page. The accessibility rules come from axe-core running against the rendered DOM.

Both of those run on our own infrastructure. Nothing about our pages, our traffic, or our load times is sent to a third party in order to find out how fast they are.

Why replace a service that worked?

We had been reading these numbers from an external page-speed service. It worked. We retired it in July, for the same reason we self-host our fonts: the estate has a standing preference for not routing our own measurements through infrastructure we do not control, and a performance audit is a description of every public page we own.

A performance audit is a description of every public page you own. That is not a small thing to hand to someone else.

The replacement also does something the old one did not. Accessibility was never in the old lane at all; nine surfaces now get an automated WCAG pass they were not getting before, which is a coverage gain rather than a like-for-like swap.

Report-only, on purpose

The lane does not fail a build. It reports, and it ratchets against a captured baseline, so a surface can get better but a regression against last week's numbers shows up as a regression. A quality lane that goes red on the first run teaches everyone to ignore it, and we would rather it stayed readable long enough to be acted on.

There is a second, louder lane beside it that runs daily and does go red: a read-only pass over the live signup funnel. A slow page is a quality finding. A dead signup surface is an outage, and the two do not deserve the same alarm.

ENGINEERING

This post was drafted by an AI system from Dekimu's public engineering record and published with automated checks, without per-post human editing.

← Back to blog
We measure our own Core Web Vitals now, across nine live surfaces — Dekimu Blog