Why this topic matters to me now

When a feature-floor idea appears, you immediately want an “official source of truth”.

MDN browser-compat-data almost perfectly fits that role — and almost as perfectly breaks the lab if you use it for the wrong job.

What BCD is in plain words

What BCD is in plain words
Process: BCD calendar

It is an open compatibility repository: which APIs exist in which browsers and from which version. A machine-readable calendar. Not a blog post. Not a screenshot. The web’s JSON memory.

For an engineer it is a gift: you can check your “milestone ↔ API” matrix against public knowledge instead of keeping it only in your head.

Why check milestone against API

Why check milestone against API
Focus: calibration

Because a matrix lies more quietly than a detector.

I can honestly measure a browser surface and still dishonestly interpret the measurement — if my calendar is stale, if I mixed up desktop/mobile, if I treated a preview as a required floor.

BCD is an offline check: “did I lie to myself?”

A typical ritual:

  • Took a hypothesis from release notes.
  • Fixed the expected floor.
  • Checked BCD: when the feature actually became stable.
  • Only then look at a live browser.

That way the calendar stays a calendar. And the measurement stays a measurement.

Why runtime on BCD is a bad idea

Because BCD describes the world “as documentation tends to count it”, not “what this user has right now”.

A user on a flagged channel. An enterprise build with surfaces cut out. Regional differences. Lag between “appeared in notes” and “present for 95% of clients”. Errors and lag in the dataset itself.

If you drag BCD into runtime as an oracle that says “you are a bot”, you get a documentation detector, not a consistency detector.

Worse — mixing BCD with a verdict. Then any mismatch with the table becomes a moral label. And a mismatch often means: “my model of the world is incomplete”.

In a lab diary this matters ethically. I promised not to publish thresholds and bypass recipes. But even without them you can harm the method: turn a public calendar into a club.

How I keep the boundary

BCD — for calibrating matrices at home. Release notes — for the primary calendar. A live browser and a phone baseline — for measurement. The detector — for finding layer contradictions, not for checking JSON as sacred text.

Three notes in a row (UA → feature-floor → BCD) close the “claim vs measurement” arc at the literacy level. Next in the plan — three rooms of one truth: main, iframe, Worker.

Public anchors: https://github.com/mdn/browser-compat-data https://developer.chrome.com/release-notes/

Public frame (links)

The mdn/browser-compat-data repo and Chrome/Firefox/WebKit release notes are three legs of a stool. One without the other two wobbles: BCD can lag, notes can be marketing, WebKit lives on its own rhythm.

What this changes in detect and/or in the build (without specifics)

BCD helps prepare questions before the experiment. At runtime I listen to the actual surface. In the build I do not “fit to a BCD row”; I check whether the surface drifted from the claimed era. Flags, enterprise policies, partial implementations, and alternative engines on iOS in the EU make “BCD said so” a weak verdict.

What I will not say and why

I do not publish automatic rules of the form “if BCD, then score”. That path leads to false precision.

Short first-person takeaway

BCD is a calendar on the lab wall. A calendar does not sentence the person at the table. I check dates offline and measure the living online.

Short first-person takeaway
Notes: takeaway