Frontmatter
| id | 9059 |
| title | Optimize & Minify DevRank Data Schema |
| state | Closed |
| labels | enhancementaiperformance |
| assignees | tobiu |
| createdAt | Feb 8, 2026, 10:36 PM |
| updatedAt | Feb 8, 2026, 11:31 PM |
| githubUrl | https://github.com/neomjs/neo/issues/9059 |
| author | tobiu |
| commentsCount | 2 |
| parentIssue | 8930 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 8, 2026, 11:31 PM |
Optimize & Minify DevRank Data Schema
tobiu assigned to @tobiu on Feb 8, 2026, 10:37 PM
tobiu added parent issue #8930 on Feb 8, 2026, 10:37 PM

tobiu
Feb 8, 2026, 10:41 PM
Input from Gemini 3 Pro:
✦ Optimization Success Report
The data schema optimization and minification have been successfully applied.
Results:
- File Size: Reduced from ~6.0 MB to 1.60 MB
- Reduction Rate: ~73%
Key Changes:
- Structure: Migrated
users.jsonto a "One-Record-Per-Line" format with short keys (e.g.,lforlogin,tcfortotal_contributions).- Avatars: Now stored as integer IDs instead of full URLs.
- Years: Converted from an object map to a sequential array.
- Orgs: Limited to top 5 and stored as compact tuples.
This optimization ensures the application remains performant and scalable as we approach the 100k user target.

tobiu
Feb 8, 2026, 10:55 PM
Input from Gemini 3 Pro:
✦ Optimization Update (Grid & Memory)
Following the schema minification, we identified and resolved integration issues with the UI:
- Grid Mapping Fix: Updated
DevRank.store.Contributorsto usekeyProperty: 'l'(matching the minifiedloginkey). This resolved an issue where grid rows were assigned temporary negative IDs instead of the correct usernames.- Memory Optimization: Refactored
DevRank.model.Contributorto remove the redundantyearsobject field. The Model now maps the individual year fields (e.g.,y2023) directly from the raw data array, eliminating the need to construct an intermediate object map in memory.- Data Logic: Updated the year field calculation logic to robustly handle both raw data and model instance contexts.
tobiu closed this issue on Feb 8, 2026, 11:31 PM
tobiu cross-referenced by #9062 on Feb 9, 2026, 12:00 AM
The current
users.jsondataset is ~6MB for ~6k users (~1KB/user). Scaling to 100k users would result in an unmanageable ~100MB payload.We need to drastically optimize the data structure to reduce file size by ~70% while maintaining functionality.
Optimization Strategy:
login->l,total_contributions->tc).yearsobject map to a sequential array starting fromfirst_year.[login, id].Tasks:
DevRank.model.Contributorwith field mappings and reconstruction logic.DevRank.services.Updaterto persist data in this new format.users.jsonto the new schema.