Self-hosted Core Web Vitals monitoring from real Chrome users, on the Cloudflare plan you already pay for.
A performance retainer means the client's rankings are your problem. A deploy adds a chat widget, INP slides past 200ms for real users, and the first anyone hears of it is a ranking dip weeks later. Google publishes the field data that would have caught it the same week. Nobody is watching it per URL.
VitalsWatch reads the Chrome UX Report for every URL on your list, every six hours, with your own free Google API key. It stores the p75 trend in your own database and pushes to your phone on the day a rating crosses a Google threshold, in either direction.
DebugBear is excellent hosted monitoring with lab tests, waterfalls, and real-user data. Its Startup plan runs $99 a month billed yearly, $125 billed monthly, with per-plan test and page-view limits (DebugBear pricing, as of Sep 2026). VitalsWatch is source code you run yourself for one payment: no per-page pricing, no monthly bill, as many URLs as fit the polite six-hour cycle.
| DebugBear | VitalsWatch | |
|---|---|---|
| Price | $99 to $125/mo, Startup plan | $49 once |
| Data | Lab tests, waterfalls, RUM | Google CrUX field data only |
| Catches a regression in | Minutes, on the next test | Days; CrUX is a 28-day rolling window |
| Where data lives | Their servers | Your Cloudflare account |
| Alerts | Hosted alerting | iPhone and Web Push only |
If you want synthetic lab tests, waterfalls, and a regression caught within minutes, the hosted tools earn their fee. If you want field-data regression pushes on the exact pages you manage, one payment covers it.
You'll need a Cloudflare account, a free Google API key with the Chrome UX Report API enabled, and ten minutes in a terminal.
It does, at the site level, on Google's schedule, in an inbox. VitalsWatch is per URL, on your list, with a six-hour check and a phone push the day a specific page's rating moves. The wedge is speed and specificity, not access to secret data.
The Chrome UX Report API: aggregated field data from real Chrome users, the same dataset Google's ranking systems use. You call it with your own free Google API key. Some URLs have too little traffic to appear; those show as no-data, never as a made-up score.
Yes, from the installed home-screen app on iOS 16.4 or later. That requirement comes from Apple. The kit ships a test-ping button so you can prove the pipe end to end in your first ten minutes.
The full TypeScript source: Worker, React app, schema, tests, VAPID generator, and the README. Use it in unlimited personal and client projects; the one restriction is you cannot resell the kit itself.
It runs no lab tests and loads no pages, so there are no waterfalls or filmstrips; it reads Google's field data. CrUX updates roughly daily as a 28-day rolling window, so this catches regressions in days, not minutes. Pages without enough Chrome traffic have no data to watch.
Full TypeScript source
Unlimited personal and client projects
Free updates to the kit
License terms ship inside the kit
Launching soon. Leave your email and the launch link lands in your inbox the moment it is live. One email, no list, no spam.