← All projects
shipped 2026

Biomarker Reference

Your blood numbers, scored against every standard at once, because they don't agree.

Biomarker Reference hero
The overview: every marker scored against each standard at once, sample data shown until you enter your own.

Why this exists

I wanted a concise way to see what the optimal values are for the nutrients I care about, and to drop my own numbers in against them. I’d been optimizing my health on and off for years, and the reference values were always scattered: one range on the lab report, a different one on a longevity blog, a third in a forum.

I assumed pulling those together would be a long, manual slog. It turned out that using AI to consolidate the values concisely and wrap them in a clean UI was the easy part.

What it does

It opens on clearly-labeled sample data so the page is never empty, and the moment you enter a real value, the sample disappears.

How it works

  1. Catalog: Every marker and every source’s range live as plain, cited data, so adding a nutrient or a new standard is a data edit, not a code change
  2. Score: A small pure function places your value against each source’s band and returns a verdict (optimal / below / elevated), with a separate rule for “lower is better” markers like ApoB
  3. Render: A vanilla-TypeScript island draws the overview chart and the per-marker dial in SVG, no chart library
  4. Persist: Your values stay in the browser’s local storage, nothing leaves the device on the manual path

The whole thing is a static site, which keeps it free to run. The one feature I cut for that reason was AI lab-report parsing: a deployed app can’t use my Claude subscription, and the metered API would cost real money per parse, so I replaced it with a free in-browser parser that handles the common cases. Every range is sourced and cited (LabCorp, the Endocrine Society, NIH, WHO, NHANES, and others), and a test fails the build if any range ships without a citation.

What’s next

What I learned

It really is possible to build almost anything now. I’d circled this idea for years and it always died at the research-and-data-aggregation step. This time I automated about 90% of that work, and the part I thought would take forever was the part that took the least time. That shift is the real takeaway, not the tool itself.

Status

Shipped. Live and free to use. The next real step is turning the readout into recommendations.

← All projects