Skip to content

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

  1. 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

  1. User lands on page → sees email input field with "Unwrap Your 2025" button
  2. User enters email → JavaScript searches CSV for matching row
  3. If found → display personalized stats in animated cards
  4. 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