Majority Wrapped 2025¶
This is the plan for Majority Wrapped 2025
Progress should be tracked in the wrapped-steps.md file, not in this file.
High level¶
There will be two parts to this:
1. Prepare a csv file with the stats for each user.
The available stats are in csvs in pr_stats_output folder.
Theres a mapping of email and gh username to displayname in majority_dev_users_20251217_131102.csv
- Make a fancy static website that take the data from csv and displays. The website should take as input a email adr, and then display the stats for that user..
The website will be hosted internally, no privacy checks needed. And its a fully static site.
User Flow¶
- User lands on page → sees email input field with "Unwrap Your 2025" button
- User enters email → JavaScript searches CSV for matching row
- If found → display personalized stats in animated cards
- If not found → show friendly "User not found" message
Stats Display Cards¶
Each card shows one stat with engaging copy:
| Card | Display Example |
|---|---|
| PRs Shipped | "You shipped 42 PRs this year 🚀" |
| Lines of Code | "You wrote 15,234 lines of code 📝" |
| Code Cleaner | "You cleaned up 3,421 lines of code 🧹" |
| Repos Touched | "You contributed to 8 repositories 🌐" |
| Reviews Given | "You approved 67 PRs from teammates ✅" |
| Top Commenter | "You were the top reviewer on 23 PRs 💬" |
| Busiest Month | "Your busiest month was March 📅" |
| Favorite Repo | "Your home base was be-platform 🏠" |
| Speed Record | "Your fastest merge was 2.3 hours ⚡" |
Design Guidelines¶
- Color scheme: Gradient backgrounds (purple → pink → orange, Spotify-inspired)
- Typography: Large bold numbers, playful supporting text
- Animation: Cards fade/slide in sequentially
- Mobile-friendly: Responsive single-column layout on small screens
- Share-friendly: Clean layout suitable for screenshots
Technical Notes¶
- Pure HTML/CSS/JS (no framework needed for static site)
- Load CSV via
fetch()and parse with simple CSV parser or PapaParse library - Case-insensitive email matching
- Consider adding a "loading" state while parsing CSV
- The site should be put in the wrapped folder, it already has an empty index.html file.
- Take data from majority_dev_users_20251217_131102.csv and the csv files in pr_stats_output folder, which contains by repo stats
Further Considerations¶
Privacy & Access¶
- Option A: Deploy on internal network only
- Option B: Add simple password/code gate
- Option C: Public but no sensitive data (exclude salary, performance metrics)
Leaderboards (Optional Enhancement)¶
- Add "How you rank" section showing percentile vs org
- Top 10 lists for various categories
- Requires additional data in CSV (ranks, percentiles)
Future Enhancements¶
- Year-over-year comparison (2025 vs 2026)
- Team-level wrapped (aggregate by team/squad)
- Export as image for sharing
- Dark/light mode toggle