Leaderboard
Every publicly analyzed repository (894 total), ranked by codebase health score - dead code, complexity, test file ratio, duplication, and file size.
See what breaks first
On expressjs/express, changing eb9df264-6bc3-46e3-b9db-f9bf0a63bdfa/index.js affects 109 other files - 96 directly, 13 transitively.
That's ArchSetu's blast-radius graph, traced automatically for every file in every repo it scans - not a health score, an actual dependency trace. Real result, computed live, not a mockup.
Open the Change Impact graphDead code is attack surface
Unreachable code still ships in your bundle. It can hide a forgotten auth check or a deprecated endpoint nobody is patching.
Complexity hides bugs from review
More branches means more edge cases a reviewer can miss - high-complexity functions are where vulnerabilities go unnoticed the longest.
Undeclared imports are supply-chain risk
A package imported but never declared can silently disappear or get typosquatted - see the Dependencies tab on any report.
894
Repos analyzed
9,277,318
Functions scanned
2,028,461
Dead functions found
362,328,054
Lines of code scanned
Reference repositories
Vetted, well-known open-source projects| # | Repository | Language | Health | Avg complexity | Dead code (functions) | Scan time | Last analyzed |
|---|---|---|---|---|---|---|---|
| 1 | expressjs/express★ 69,269 | JavaScript | 98/100 · A+ | 1.1 | 0 of 1,653 | 1.7s | 1mo ago |
| 2 | django/django★ 88,234 | Python | 96/100 · A+ | 1.8 | 1,272 of 32,564 | 14.3s | 1mo ago |
Community-submitted repos
Analyzed by other visitors, unvetted| # | Repository | Language | Health | Avg complexity | Dead code (functions) | Scan time | Last analyzed |
|---|---|---|---|---|---|---|---|
| 151 | keras-team/keras★ 64,178 | Python | 88/100 · A | 2.0 | 258 of 14,961 | 10.7s | 1mo ago |
| 152 | OpenHands/OpenHands★ 82,043 | Python | 88/100 · A | 2.2 | 278 of 11,091 | 11.7s | 1mo ago |
| 153 | nodejs/node★ 0 | C | 88/100 · A | 3.5 | 20,000 of 192,999 | - | 1mo ago |
| 154 | zen-browser/desktop★ 0 | TypeScript | 88/100 · A | 4.0 | 518 of 2,824 | - | 1mo ago |
| 155 | PatrickJS/awesome-cursorrules★ 40,427 | JavaScript | 88/100 · A | 4.3 | 1 of 104 | 0.9s | 1mo ago |
| 156 | gajus/slonik★ 4,918 | TypeScript | 87/100 · A | 3.9 | 1 of 284 | 2.3s | 24d ago |
| 157 | zio/zio-quill★ 2,166 | Scala | 87/100 · A | 5.3 | 341 of 1,314 | 2.1s | 1mo ago |
| 158 | scalameta/metals★ 0 | Scala | 87/100 · A | 5.5 | 971 of 4,183 | - | 1mo ago |
| 159 | scalanlp/breeze★ 3,454 | Scala | 87/100 · A | 2.9 | 468 of 2,994 | 2.2s | 1mo ago |
| 160 | scala-native/scala-native★ 4,675 | Scala | 87/100 · A | 3.2 | 4,145 of 15,443 | 8.5s | 1mo ago |
| 161 | playframework/playframework★ 12,622 | Scala | 87/100 · A | 2.4 | 3,169 of 10,025 | 6.1s | 1mo ago |
| 162 | nicklockwood/SwiftFormat★ 8,867 | Swift | 87/100 · A | 2.4 | 496 of 11,804 | 6.8s | 1mo ago |
| 163 | onevcat/Kingfisher★ 24,377 | Swift | 87/100 · A | 2.6 | 282 of 1,397 | 2.1s | 1mo ago |
| 164 | timescale/timescaledb★ 23,175 | C | 87/100 · A | 4.2 | 1,589 of 4,944 | 6.5s | 1mo ago |
| 165 | facebook/zstd★ 27,462 | C | 87/100 · A | 4.2 | 923 of 4,255 | 6.9s | 1mo ago |
| 166 | gabime/spdlog★ 29,259 | C | 87/100 · A | 1.9 | 547 of 1,173 | 1.4s | 1mo ago |
| 167 | nlohmann/json★ 50,213 | C++ | 87/100 · A | 3.1 | 3,491 of 6,259 | 8.4s | 1mo ago |
| 168 | bitcoin/bitcoin★ 89,687 | TypeScript | 87/100 · A | 3.1 | 2,998 of 12,512 | 1m 10s | 1mo ago |
| 169 | puma/puma★ 7,909 | Ruby | 87/100 · A | 3.2 | 638 of 1,962 | 1.2s | 1mo ago |
| 170 | varvet/pundit★ 8,521 | Ruby | 87/100 · A | 1.8 | 90 of 105 | 0.7s | 1mo ago |
| 171 | facebook/docusaurus★ 0 | TypeScript | 87/100 · A | 2.8 | 236 of 3,006 | - | 1mo ago |
| 172 | w7corp/easywechat★ 10,373 | PHP | 87/100 · A | 3.3 | 82 of 856 | 1.4s | 1mo ago |
| 173 | walkor/workerman★ 11,552 | PHP | 87/100 · A | 4.2 | 94 of 444 | 1.3s | 1mo ago |
| 174 | egulias/EmailValidator★ 11,640 | PHP | 87/100 · A | 1.7 | 24 of 339 | 1.0s | 1mo ago |
| 175 | erusev/parsedown★ 15,058 | PHP | 87/100 · A | 5.8 | 42 of 85 | 0.7s | 1mo ago |
