Rules
Every number here comes from GitHub. Nothing can be bought, upvoted or launched onto this board.
- 01Only repositories you can push to
GitHub confirms push access before a project is listed. Pasting someone else's repo does not work, and there is no anonymous path - every listing goes through a key tied to an account.
- 02Hours count, not commits
Consistency counts distinct hours that contain real commits. Fifty commits in one push is one hour, not fifty. Splitting the same work into more commits changes nothing.
- 03Lines changed are tracked
Volume reads additions and deletions alongside commits. It saturates, so churning a file to inflate a diff earns almost nothing - and the churn is visible in the record either way.
- 04Automation is not work
Bots are excluded from the builder count. Scripted or scheduled commits made to hold a streak are cheating, and the project is removed rather than rescored - the daily pattern makes them obvious.
- 05AI counts as work, not as a builder
Commits co-authored by an assistant count toward the total. They do not add a builder, so using one never dilutes your per-builder score.
- 06Timestamps are GitHub's, not yours
Backdated commits gain nothing. The window is fixed, and server-stamped events outrank anything a local clock claims.
What counts as work
A score out of 1000, over the last ninety days, from three parts:
- Consistency 500
- Days with commits on them, how evenly those days fall, and the longest silence between them. Thirty days in one burst and thirty across three months are the same count and not the same project.
- Volume 300
- Commits and lines changed, both saturating. Neither counts for much alone: commits are trivially inflated by committing more often, and line counts are dominated by lockfiles and generated output.
- Momentum 200
- The last four weeks against the four before them — the same comparison the board shows as a multiple on every row, so the score and the rate can never disagree. Projects fade if they stop.
Each part saturates. Doubling your commits does not double your score, which is what stops the board rewarding noise.
Every number comes from three things a read-only Metadata key can reach: commits per day, lines changed per week, and the contributor list. Nothing else — not the commit messages, not the diffs, not releases or pull requests.
That is a deliberate limit rather than a shortcoming. Those three are the only things readable on a private repository, and most products worth ranking are built in private. Measuring public projects more finely would put two incomparable columns on one board. Less information, identical for everyone, beats more information for half the entrants.
One honest consequence: without the commit list we cannot tell a merge commit or a bot’s commit from a person’s. Bots are kept out of the builder count, where the contributor list names them, but their commits are in the totals. Volume saturates partly for that reason.
The board is ordered by the score, and the score shows its working: hover it on any row and you get the three parts, their caps and the divisor. You can also rank by consistency, commits or lines changed — counts you can check against the repository yourself, which the score is not.
How change is measured
One window, ninety days. Change is a rate rather than a shorter ranking: the commits of the last four weeks divided by the four before them, shown as a multiple. Equal halves, four weeks each, because line churn reaches us one row per week and a month is how people think about it anyway. A ratio rather than a difference, so a solo project doubling and a six-person team doubling read as the same fact.
It has a floor. Two commits becoming six is 3× and means nothing, so a project needs 20 commits or 8 active days in the recent four weeks before its rate is reported at all. A real month with an empty one before it reads as new, not as acceleration — it did not speed up, it arrived.
The movement arrows compare against where things stood a week ago. Over ninety days a single day moves a score by a point or two, so night-to-night arrows were mostly two projects swapping on a rounding difference.
Ranking people
The same window, read the other way round. A builder’s commits and lines are their share of each repository’s totals, and the share is GitHub’s own contributor arithmetic rather than ours. Their work is each project’s score times that share, added up across everything of theirs on the board.
One thing that is not personal: the calendar. Commit dates arrive per repository, not per person, so a builder’s days are days one of their projects was worked on. The board says that rather than implying we watched anyone work. Avatars come from GitHub by login — nothing is uploaded here, so a face is as unfakeable as the commits under it.
Why per builder
The default ranking divides a project’s score by its effective team size, so a six-person team has to out-work six solo founders per head to sit above them. Effective size is weighted by contribution, not a headcount — one person and a colleague who fixed a typo is not a duo. You can switch to total effort at any time; both are honest, they answer different questions.
What we read
For a public repository, the commit history, exactly as any visitor could — unauthenticated, no permission involved.
For a private one, GitHub’s own repository statistics: commits per day, contributors, and the shape of a working week. That is aggregate data GitHub computes; not a line of code is read, and the key we ask for cannot read one even if we wanted to.
What we never read
The key carries a single permission — Metadata, read-only. It cannot reach file contents, commit diffs or messages, issues, pull request bodies, secrets, or Actions. It cannot write anything, anywhere. GitHub itemises this on its own screen before it issues the key.
For public projects the key is used once to prove you can push to the repo, then discarded. Private projects have no other source of numbers, so their key is kept — encrypted, under a key held outside the database, and dropped the first time GitHub refuses it. Revoke it on GitHub whenever you like.
Where the product link comes from
The repository’s own About field, and nowhere else. We never ask anyone to type a product URL, because a typed URL is the one thing on a listing its author could point anywhere — at a competitor, at an affiliate wrapper, at anything. Setting the About field takes push access, which GitHub confirms.
A repository with no About link simply lists without one. Every row also prints the repository its numbers came from, so you can check the pairing yourself rather than taking our word for it.