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 |
|---|---|---|---|---|---|---|---|
| 1 | argotorg/solidity★ 25,684 | C++ | 98/100 · A+ | 1.5 | 3,227 of 16,011 | 13.6s | 1mo ago |
| 2 | mockery/mockery★ 10,725 | PHP | 98/100 · A+ | 1.6 | 170 of 1,595 | 5.3s | 1mo ago |
| 3 | doctrine/instantiator★ 10,995 | PHP | 98/100 · A+ | 1.4 | 23 of 53 | 0.7s | 1mo ago |
| 4 | twitter/finatra★ 2,272 | Scala | 97/100 · A+ | 2.0 | 404 of 1,352 | 2.6s | 1mo ago |
| 5 | pallets/flask★ 72,014 | Python | 97/100 · A+ | 1.3 | 305 of 1,491 | 1.9s | 1mo ago |
| 6 | joernio/joern★ 3,355 | Scala | 96/100 · A+ | 2.1 | 1,008 of 7,395 | 6.8s | 1mo ago |
| 7 | javalin/javalin★ 8,316 | Kotlin | 96/100 · A+ | 2.3 | 333 of 1,602 | 1.5s | 1mo ago |
| 8 | Kotlin/kotlinx.coroutines★ 13,801 | Kotlin | 96/100 · A+ | 1.9 | 463 of 6,216 | 3.3s | 1mo ago |
| 9 | swiftlang/swift★ 0 | Swift | 96/100 · A+ | 2.0 | 20,000 of 133,058 | - | 1mo ago |
| 10 | SwifterSwift/SwifterSwift★ 15,145 | Swift | 96/100 · A+ | 2.0 | 31 of 1,214 | 2.1s | 1mo ago |
| 11 | v8/v8★ 0 | C++ | 96/100 · A+ | 2.0 | 20,000 of 94,537 | - | 1mo ago |
| 12 | google/googletest★ 38,860 | C++ | 96/100 · A+ | 1.6 | 1,224 of 2,784 | 5.6s | 1mo ago |
| 13 | doctrine/lexer★ 11,152 | PHP | 96/100 · A+ | 1.5 | 3 of 54 | 0.6s | 1mo ago |
| 14 | sebastianbergmann/phpunit★ 20,045 | PHP | 96/100 · A+ | 1.8 | 378 of 10,949 | 34.1s | 1mo ago |
| 15 | scrapy/scrapy★ 63,404 | Python | 96/100 · A+ | 1.5 | 320 of 5,422 | 3.4s | 1mo ago |
| 16 | tiangolo/fastapi★ 101,555 | Python | 95/100 · A+ | 1.3 | 711 of 4,210 | 7.6s | 22d ago |
| 17 | stephencelis/SQLite.swift★ 10,186 | Swift | 95/100 · A+ | 1.9 | 80 of 1,014 | 1.3s | 1mo ago |
| 18 | mxcl/PromiseKit★ 14,233 | Swift | 95/100 · A+ | 2.5 | 30 of 539 | 0.9s | 1mo ago |
| 19 | serbanghita/Mobile-Detect★ 10,681 | PHP | 95/100 · A+ | 2.6 | 29 of 195 | 1.2s | 1mo ago |
| 20 | barryvdh/laravel-ide-helper★ 14,955 | PHP | 95/100 · A+ | 2.1 | 473 of 793 | 1.1s | 1mo ago |
| 21 | sharkdp/bat★ 59,869 | Rust | 95/100 · A+ | 2.2 | 461 of 1,490 | 2.6s | 1mo ago |
| 22 | fastapi/fastapi★ 100,872 | Python | 95/100 · A+ | 1.3 | 703 of 4,159 | 5.6s | 1mo ago |
| 23 | preactjs/preact★ 38,775 | JavaScript | 95/100 · A+ | 2.3 | 11 of 2,360 | 5.0s | 1mo ago |
| 24 | rust-lang/rust★ 0 | Rust | 94/100 · A+ | 2.4 | 20,000 of 93,408 | 30.9s | 4d ago |
| 25 | home-assistant/core★ 0 | Python | 94/100 · A+ | 1.5 | 6,428 of 117,627 | 35.0s | 4d ago |
