Files with the highest combination of change frequency and waste ratio. These are candidates for refactoring or closer review.
Cumulative contribution over time. Watch developers race as positions shift month by month.
Commit activity distribution by hour and day of week across all contributors in this repository.
Repository
react-native
A framework for building native applications using React
Average Developer Performance (ETV)
Year-by-year Trend:+364%Performance has many faces. Navigara breaks down the effort to visualize what parts of codebase has been changed and where energy flowed. Our Architect AI can break the performance even further into particular components and patterns.
Breakdown of file changes over time. Play the timeline to see how change types evolved across periods.
Monthly overview of bugs introduced and fixed, based on symbol-level commit analysis. Fixes show whether the original author fixed their own bug (self-fix) or someone else did (cross-fix).
Bug attribution uses symbol-level matching from commit history. For each fix commit, we look at the changed symbols (functions, classes, methods) and trace backwards to find who last modified that symbol in a non-fix commit. This person is the probable bug introducer. The algorithm only works when commits have symbol-level data from the Navigara analysis engine — the coverage rate shows what percentage of fix commits had this data available.
The current metrics model has a semantic inversion: when developer A creates a feature with a bug, they receive grow (positive). When developer B fixes that bug, they receive waste (negative). The bug creator is rewarded while the fixer is penalized. Bug attribution addresses this by explicitly tracking who introduced bugs and who fixed them, providing a more accurate picture of code quality contributions.
Currently computed client-side from commit data. Ideal server-side endpoint:
POST /v1/repositories/{repositoryId}/bug-attributions
Content-Type: application/json
Request:
{
"startTime": "2025-01-01T00:00:00Z",
"endTime": "2025-12-31T23:59:59Z"
}
Response:
{
"totalBugsAttributed": 42,
"selfFixRate": 35,
"coverageRate": 78,
"attributions": [
{
"filePath": "src/lib/auth.ts",
"symbol": "validateToken",
"introducer": { "name": "Alice", "email": "alice@co.com", "commitSha": "abc123" },
"fixer": { "name": "Bob", "email": "bob@co.com", "commitSha": "def456" },
"fixedAt": "2025-06-15T10:30:00Z",
"isSelfFix": false
}
]
}Reclassifies engineering effort based on bug attribution. Commits that introduced bugs are retrospectively counted as poor investments.
Investment Quality reclassifies engineering effort based on bug attribution data. Commits identified as buggy origins (those that introduced bugs later fixed by someone) have their grow and maintenance time moved into the Wasted Time category. Their waste (fix commits) remains counted as productive. All other commits retain their standard classification: grow is productive, maintenance is maintenance, and waste (fixes) is productive.
The standard model classifies commits as Growth, Maintenance, or Fixes. Investment Quality adds a quality lens: a commit that introduced a bug is retrospectively counted as a poor investment — the engineering time spent on it was wasted because it ultimately required additional fix work. Fix commits (Fixes in the standard model) are reframed as productive, because fixing bugs is valuable work.
Currently computed client-side from commit and bug attribution data. Ideal server-side endpoint:
POST /v1/organizations/{orgId}/investment-quality
Content-Type: application/json
Request:
{
"startTime": "2025-01-01T00:00:00Z",
"endTime": "2025-12-31T23:59:59Z",
"bucketSize": "BUCKET_SIZE_MONTH",
"groupBy": ["repository_id" | "deliverer_email"]
}
Response:
{
"productivePct": 74,
"maintenancePct": 18,
"wastedPct": 8,
"buckets": [
{
"bucketStart": "2025-01-01T00:00:00Z",
"productive": 4.2,
"maintenance": 1.8,
"wasted": 0.6
}
]
}Latest analyzed commits in this repository.
| Hash | Message | Author | Effort |
|---|---|---|---|
| 5964a19 | Delete fixTextClippingAndroid15useBoundsForWidth() (#56282) | Nick Gerleman | waste |
| aaa0684 | feat: Add mixBlendMode add-lighter (#56278) | bigcupcoffee | grow |
| d92e70b | Add changelog for v0.85.0-rc.7 (#56276) | React Native Bot | – |
| 3b634bc | Run the snapshot comparison on CI (#56207) | Jakub Piasecki | grow |
| 866e55c | Deploy 0.307.1 to xplat (#56286) | Panos Vekris | maint |
| 868eb6c | Remove fantom test specific methods from the C++ API snapshot (#56247) | Dawid Małecki | maint |
| d920d10 | Fix Doxygen merging base classes from primary templates into specializations (#56239) | Dawid Małecki | maint |
| e78afea | Exclude UnstabeLegacy symbols from stable C++ API snapshot (#56242) | Dawid Małecki | maint |
| b0b30b5 | Add global exclude patterns to the cxx api config (#56248) | Dawid Małecki | maint |
| d513096 | Add `exclude_symbols` to the cxx-api parser config (#56240) | Dawid Małecki | grow |
Delete fixTextClippingAndroid15useBoundsForWidth() (#56282)
feat: Add mixBlendMode add-lighter (#56278)
Add changelog for v0.85.0-rc.7 (#56276)
Run the snapshot comparison on CI (#56207)
Deploy 0.307.1 to xplat (#56286)
Remove fantom test specific methods from the C++ API snapshot (#56247)
Fix Doxygen merging base classes from primary templates into specializations (#56239)
Exclude UnstabeLegacy symbols from stable C++ API snapshot (#56242)
Add global exclude patterns to the cxx api config (#56248)
Add `exclude_symbols` to the cxx-api parser config (#56240)
Average context complexity and engagement score of file changes over time. Higher complexity means more intricate changes; higher impact means broader effect on the codebase.
Contributors ranked by total performance (ETV) from analyzed commits.
| # | |||||
|---|---|---|---|---|---|
| 1 | Rubén Norte392 commits | 35.5 | 14.9 | 18.6 | 2 |
| 2 | Nick Gerleman192 commits | 34.2 | 15.8 | 11.3 | 7.1 |
| 3 | Samuel Susla232 commits | 29.9 | 11.1 | 16.5 | 2.4 |
| 4 | Alex Hunt296 commits | 25.8 | 13.6 | 10.1 | 2.2 |
| 5 | Nicola Corti361 commits | 23.7 | 2.9 | 18.4 | 2.3 |
| 6 | Pieter De Baets191 commits | 23.3 | 2.7 | 18.2 | 2.4 |
| 7 | Jakub Piasecki221 commits | 21 | 9.5 | 10 | 1.6 |
| 8 | Zeya Peng90 commits | 18 | 11.2 | 5.3 | 1.5 |
| 9 | Mateo Guzmán223 commits | 17.6 | 0 | 16.7 | 0.8 |
| 10 | David Vacca311 commits | 17.6 | 3.9 | 12.6 | 1.1 |
| 11 | Ruslan Lesiutin189 commits | 17.5 | 7.1 | 9.3 | 1.2 |
| 12 | Peter Abbondanzo65 commits | 17 | 10 | 4.7 | 2.4 |
| 13 | Christoph Purrer109 commits | 16.7 | 8.6 | 6.2 | 1.9 |
| 14 | Nick Lefever117 commits | 13.8 | 10.4 | 2.2 | 1.2 |
| 15 | Timothy Yung155 commits | 13.5 | 3.7 | 9.4 | 0.5 |
| 16 | Dawid Małecki193 commits | 13.5 | 4.8 | 7.6 | 1.2 |
| 17 | Fabrizio Cucci111 commits | 12.7 | 6 | 6.2 | 0.6 |
| 18 | Riccardo Cipolleschi326 commits | 12.2 | 5.2 | 4.3 | 2.7 |
| 19 | Jorge Cabiedes Acosta48 commits | 9.7 | 4.1 | 1.4 | 4.2 |
| 20 | Ramanpreet Nara63 commits | 9.6 | 3.1 | 5.9 | 0.6 |
| 21 | Luna Wei40 commits | 7.8 | 6.1 | 1.2 | 0.5 |
| 22 | Ruslan Shestopalyuk62 commits | 7.7 | 2.8 | 4.4 | 0.5 |
| 23 | nishan (o^▽^o)19 commits | 7.5 | 6 | 1.2 | 0.3 |
| 24 | Moti Zilberman69 commits | 7 | 3 | 3.2 | 0.8 |
| 25 | Joe Vilches66 commits | 6.7 | 3.3 | 1.7 | 1.7 |
| 26 | Andrew Datsenko97 commits | 6.6 | 5 | 1.4 | 0.1 |
| 27 | Christian Falch74 commits | 5.9 | 3.1 | 1.5 | 1.4 |
| 28 | Eric Rozell27 commits | 5.4 | 3.9 | 1.2 | 0.3 |
| 29 | Devan Buggay72 commits | 5.2 | 3.6 | 0.9 | 0.7 |
| 30 | Bartlomiej Bloniarz27 commits | 4.8 | 2.5 | 2 | 0.4 |
| 31 | Vitali Zaidman103 commits | 3.6 | 1.6 | 0.9 | 1 |
| 32 | Alan Lee34 commits | 2.6 | 0.3 | 1.7 | 0.6 |
| 33 | Sam Zhou118 commits | 2.4 | 0.2 | 2.1 | 0.1 |
| 34 | zhongwuzw24 commits | 2.1 | 1 | 0.1 | 0.9 |
| 35 | Rob Hogan70 commits | 1.8 | 0.7 | 0.9 | 0.2 |
| 36 | Phil Pluckthun19 commits | 1.8 | 0 | 1 | 0.7 |
| 37 | Marco Wang39 commits | 1.6 | 0.1 | 1.5 | 0 |
| 38 | Emily Brown19 commits | 1.5 | 0.9 | 0.4 | 0.2 |
| 39 | Chi Tsai14 commits | 1.5 | 1.1 | 0.3 | 0 |
| 40 | Gang Zhao11 commits | 1.3 | 0.4 | 0.3 | 0.6 |
| 41 | riteshshukla0414 commits | 1.1 | 0 | 0.4 | 0.6 |
| 42 | Oskar Kwaśniewski24 commits | 0.9 | 0.5 | 0.2 | 0.2 |
| 43 | Nolan O'Brien13 commits | 0.4 | 0 | 0.1 | 0.4 |
| 44 | generatedunixname53739147563961340 commits | 0.4 | 0 | 0.4 | 0 |
| 45 | Panagiotis Vekris20 commits | 0.3 | 0 | 0.3 | 0 |
| 46 | Jiawei Lü1 commits | 0.1 | 0 | 0 | 0.1 |
| 47 | Richard Barnes5 commits | 0.1 | 0 | 0.1 | 0 |
| 48 | Richard Howell2 commits | 0.1 | 0 | 0.1 | 0 |