Paste a Bluesky handle. mootvelocity finds its moots (mutuals — who it follows that follow it back), then charts everyone by followers vs. real active time: not raw account age, but time since each account's current streak of actually posting began. A long silent/lurking stretch before that gets chunked out, so someone who sat quiet for a year and then started posting isn't penalized for the lurking year.
reads Bluesky's public AppView, all in your browser — no login. scans every moot's full post history to find where the silence ends — no caps, so a big moot pool can take a bit.
| # | who | followers | active since | velocity |
|---|
followers ÷ active days × 30.44 — followers per month
of that real active time, not per month since account creation.
There's no cap on any of this: every moot (not just the first N
found), every follow/follower page, and every account's full post
history all get read in full — the scan only stops when it finds a
real gap or runs out of history, so a big or high-frequency moot
pool just takes longer instead of getting truncated into a bad
number. Dimmer dots on the chart are estimates: a network hiccup
cut a scan short before it could confirm a gap or reach the end of
the account's history, so the streak may run further back than
shown — velocity there is an upper bound, not exact. If that
happens before even one 60-day window has been scanned, the window
is too thin to mean anything, so that account falls back to its
account-creation date instead of reporting a wild extrapolation
(flagged "too dense to date" in the table). Accounts with zero
original posts also fall back to their account creation date and
are flagged as such. Idea and the "silent for
over a year" framing came straight from
@cee.wtf.