TL;DR: The FAF ecosystem sits at 149,405 downloads across npm, PyPI and crates.io — 595 short of 150,000, running at 684 a day. So we expect to cross on September 25, and we are saying so the day before rather than the day after. Check it against /downloads tomorrow. The number is also a floor, not a headline, and that part matters more than the milestone.
The Prediction
150,000 expected 2026-09-25
149,405 today · 595 to go · +684/day since the 133k crossing
npm 135,347 · PyPI 12,154 · crates 1,904
the meter refreshes 09:00 UTC daily
tomorrow's refresh should read ~150,089 Every number above is fed, not typed — the same daily-refreshed file that powers the banner at the top of this site and the table on /downloads. One source, three surfaces.
A forecast is only worth reading if it can be wrong. This one is dated, the arithmetic is above it, and the number it will be checked against is public. If the 25th comes and the meter reads 149,9-something, that is on us and it stays on the page.
The Number Is a Floor
149,405 is not the biggest number we could print. It is the biggest one we can defend.
The meter counts npm and crates.io as reported, and PyPI as without_mirrors only — real installs, no mirror or bot traffic folded in. The PyPI statistics window runs about 180 days, so every package older than that is undercounted on purpose. Twenty-six packages, three registries, one hard floor.
We know what that costs, because we paid it. Until 1 August the meter counted PyPI downloads with mirrors. Then we switched it off:
2026-08-01 e67c292 hard floor meter — PyPI without_mirrors only
125,794 -> 103,813 one-time step-down
-21,981 downloads, written off
same installs, stricter meter Twenty-two thousand downloads, gone in a commit. It cost us a milestone post too: 111,111 had already been crossed on 3 July under the old count, the correction put us back underneath it, and by the time we re-crossed honestly on 12 August, 133,000 was the nearer target. That post is archived, unshipped.
Counting mirrors would make the number bigger and make it worth less. A milestone you have to explain is not a milestone.
From 133k, 24 Days Ago
133,000 landed on August 31 — that one was +32,000 in 72 days. The 16,405 since arrived in 24.
60k → 100k +40,000 in 51 days 784/day
100k → 133k +33,000 in 72 days 458/day
133k → today +16,405 in 24 days 684/day The middle stretch was the slow one. The pace since has not quite returned to the run into six figures, but it is close — and it came with no launch, no campaign and no marketing spend behind it.
Drawn to Scale
The same numbers as a chart, on a linear axis from zero to 150,000 with a tick every 25,000. Zero is 16 September 2025 — the day the first package went up. Hover any point for its figure and date.
The bumps are the point. A flat first quarter when the format existed and nobody had downloaded it. The turn in April that has not let up since. And the notch, which is the only part of this curve we put there on purpose.
Move the Number
Every install is one less to go, and 595 is a small enough gap that readers of this post could move it themselves. Watch the banner at the top of this page tick over — then check /downloads on the 25th and see whether we called it.
