Let's be honest — standard GitHub profiles are a bit... static.
As a Full Stack Developer & AI/ML Specialist, I wanted a way to showcase my contributions that actually felt alive. I didn't just want a grid of green squares; I wanted a universe.
So, I built GitPulse.
What is GitPulse?
GitPulse is a cinematic, interactive web application that transforms standard GitHub profiles and repository logs into glowing, animated contribution universes.
Instead of just seeing numbers, you experience your code history visually.
The Tech Stack
I wanted this to feel premium, fast, and visually stunning without relying on heavy frontend frameworks if I didn't need to.
Canvas API & GSAP: For buttery-smooth micro-animations and physics.
Glassmorphism UI: Using CSS backdrop-filters to create a modern, deep aesthetic.
Vanilla JavaScript: Keeping the core logic incredibly fast and lightweight.
The "Stellar Duel" Feature
One of the coolest features I added was the Stellar Duel mode.
I thought: What if you could compare your GitHub activity with a friend, but instead of a boring chart, it looked like a sci-fi dashboard?
Stellar Duel
Using the GitHub API, GitPulse fetches the data and renders a live, side-by-side visual duel of your commit history, stars, and PRs. It’s highly interactive and honestly, just really fun to look at.
The Biggest Challenge: Performance
Rendering thousands of data points (commits) visually on a canvas can crash a browser if you aren't careful.
To solve this, I had to heavily optimize the animation loop. Instead of manipulating the DOM for every star/commit node, I used HTML5 Canvas to batch render the visual elements. I also implemented requestAnimationFrame properly to ensure the animations pause when the user switches tabs, saving CPU cycles.
See it in Action
I've integrated GitPulse directly into my main portfolio.
You can try it live here: GitPulse Live Demo
And if you want to see more of the projects I build (especially in the AI/ML and Computer Vision space), check out my main hub at rahul-agarwal.in
Top comments (0)