halflife
A study tracker that measures what you retained, not what you covered
JavaScript · 2026 · active
Ticking a box records that you read something. It does not record whether you still know
it a month later, and the gap between those two is the entire point. Every card in
halflife carries a stability measured in days; retrievability decays as
0.9 ^ (elapsed / stability); and the app reports Covered and Retained as two
separate numbers, because they are two separate things.
Underneath it is a hosted tracker for multi-week learning paths with a spaced-repetition review loop over them. The curriculum is data — a JSON file per path — and the app is a Cloudflare Worker serving an API from D1 alongside a statically built page. Reading a curriculum needs no account; tracking progress does.