Method

Counted from the source records, not from Tangled's index — api.tangled.org was down throughout (every /xrpc/ path returning Failed to start container), so these figures were rebuilt from the underlying atproto data. Tangled is not one server: repositories live on knots that anyone can host. Starting from the main knot's repo list, each account's own sh.tangled.repo records were read from its PDS — those records name both the owner and the knot — every knot so discovered was listed in turn, and the cycle repeated until no new accounts appeared. It closed at 182 knots, 14,528 repositories and 17,939 accounts. Every account's sh.tangled.repo.pull and sh.tangled.repo.pull.status records were then read directly from its PDS; a pull's state is the status of the newest status record pointing at it, the same derivation the appview performs. Commits come from the patch attached to each merged PR — a gzipped git format-patch blob on newer records, an inline string on older ones. Commits pushed straight to a branch without a PR are not counted. Figures as of 4 September 2026.

Why not query the pulls directly? A first attempt asked Constellation which pull records pointed at each repo. That undercounts: the record has changed shape three times — an inline patch string, then rounds with a patch blob, now versions with base and head SHAs — and 1,034 records carry no target field at all, so a backlink index cannot see them. Reading each person's repository finds every record whatever its shape. Verified against Tangled's own web interface on 37 sampled pull requests across every generation and all three states, on knot1 and on self-hosted knots alike: 42 agreed, 0 disagreed.

How complete is it? People were found three ways: repository ownership, backlinks in Constellation, and Tangled's own social records — follows, knot and spindle memberships, collaborator entries — read from each person's repository, which is the only channel with no index in front of it. 17,939 accounts were read in all. Checked against Tangled's own web interface: 42 of 42 sampled pull requests had the state derived here, and 71 of 73 were present in the data at all — 97% recall. Adding the social channel found 164 authors the first two channels missed, which moved the totals by about 4%.

What it still cannot see. These figures are read from the source records, so a pull request whose author has since deactivated is unreachable even though Tangled still displays it — about 9% of accounts with no records return an error rather than an empty list. 2,172 repository DIDs could not be attributed to an owner, mostly repos whose records were deleted. Only 10 of the 182 knots answer a repo listing at all; the rest run older software, so the repository count is a floor. And the residual gap sits with small contributors, not large ones: every one of the top ten authors was re-counted against their live PDS and matched exactly, give or take pull requests opened while the crawl was running.

Not shown: time to merge. A pull record carries createdAt and its status record carries another — but they are asserted by different people's clients on different machines, and 19.4% of other authors' merged PRs claim to have merged before they were opened. Month bucketing survives this (0.5% of merged PRs land in a different month under either field, and the August ranking is unchanged); a duration does not.