Prasoon Soni

All projects

#GithubWrapped

A year of your GitHub, wrapped into a single shareable card.

Live site

Overview

A Spotify-Wrapped-style recap for developers. Enter a GitHub username and get a shareable summary of the year in code — total contributions, busiest days, top languages, and standout repositories — rendered as a clean, screenshot-ready card.

The problem

GitHub holds a rich story of how a developer spent their year, but it's buried across profile pages, contribution graphs, and repo stats. There was no single, delightful view a developer could glance at — and share — at year's end.

Architecture

  1. Client: React + Chakra UI (Enter a username, get the shareable card)
  2. (username) Server: Node / Express API (Reduces the year into one summary); Cache (Aggregated result per username)
  3. (batched requests) Source: GitHub REST API (Contributions, languages, repo metadata)

Repeat lookups of a username come from the cache, so the app stays well within GitHub API rate limits.

Approach

Aggregating the year

A Node/Express backend fans out to the GitHub REST API, pulling contribution counts, per-language byte totals across repositories, and repository metadata, then reduces it all into one compact summary the client can render instantly.

Staying under the rate limit

Requests are batched and the aggregated result is cached server-side, so repeated lookups of the same username stay fast and well within GitHub API rate limits.

A card built to be shared

The React + Chakra UI frontend composes the stats into a single visual card designed to look right as a screenshot — the format people actually post to X and LinkedIn.

Highlights

  • Live at gw.prasoonsoni.in
  • Per-language breakdown aggregated across all public repos
  • Server-side caching to respect GitHub API rate limits
  • Screenshot-ready shareable card

Stack

React.js, Node.js, Express.js, GitHub REST API, Chakra UI