Release tracking

When a page gets slower, the first question is which deploy did it. We can answer that only if we know when each release shipped — this is the one line that tells us.

Option 1: from your deploy pipeline (recommended)

One request at the end of your build. It records the release at the moment it ships, even if nobody visits for hours.

curl -sS -X POST https://vitalsdesk.com/api/releases \
  -H 'content-type: application/json' \
  -d '{"siteKey":"YOUR_SITE_KEY","release":"'"$(git rev-parse --short HEAD)"'"}'

Your site key is in the script snippet on the website's project page, and in Real-user data → Releases. The request answers 202 whether or not the key is valid, so it never breaks a build; a malformed body gets 400.

Where to get the commit SHA in common pipelines:

  • Vercel — VERCEL_GIT_COMMIT_SHA
  • Netlify — COMMIT_REF
  • Cloudflare Pages — CF_PAGES_COMMIT_SHA
  • GitHub Actions — ${{ github.sha }}
  • Anything else — $(git rev-parse --short HEAD)

Option 2: from the page itself

Add the release to the script tag you already pasted:

<script src="https://vitalsdesk.com/beacon.js" data-site="YOUR_SITE_KEY" data-release="YOUR_COMMIT_SHA" async></script>

Simpler, but a release is only recorded when someone visits, so on a quiet site an overnight deploy is stamped with the morning. If your script tag sits in a cached theme you cannot change per deploy, a meta tag works instead: <meta name="lhcr-release" content="SHA">.

Rules for release names

  • Up to 40 characters: letters, digits, dot, dash, colon or underscore. A commit SHA or a version tag is ideal.
  • It must change per deploy and must not be a timestamp or a random value — every new name is a new release.
  • A website can register 30 new release names a day, and holds up to 200 at once; the daily cleanup keeps the 100 most recently seen. Past the daily budget, new names wait until tomorrow — which is what stops a cache-buster filling the list.

What you get

Each release appears as a marker on the trend chart straight away. Once it has a full day of traffic on each side, it gets a verdict: whether each Core Web Vital got better, worse, or stayed within the noise — and if a release made a metric worse, the regression alert names it.

Release tracking is included on paid plans. See pricing.