Hi everyone!
We built GitHub Planet, an interactive web experience that transforms a developer’s GitHub activity into a unique living 3D planet.
Repositories, programming languages, contributions, stars, and contributions to external repositories affect the planet’s appearance, surface, size, rotation speed, surrounding stars, achievements, and titles.
GitHub pushes become real-time shooting stars
When GitHub Planet receives a GitHub Push Webhook, it detects the changed programming language and the amount of code changed.
The programming language determines the shooting star’s color, and the amount of change affects its scale.
The event is then broadcast through Socket.IO and appears as a shooting star in the live Three.js scene for connected visitors in real time.
GitHub push → Webhook → Socket.IO → Shooting star
Each programming language creates a different world
The planets are not only recolored versions of the same model.
Different programming languages have their own shader-driven surfaces, atmosphere, particles, shells, wind, lightning, and other visual effects.
These showcase planets use fixed test data, so you can open them without logging in.
Vue — Gentle Reactive Wind
Put your planet on your GitHub profile
GitHub Planet can also generate a shareable profile card showing your planet, main programming language, and contribution count.
There are two display options:
- Static card — recommended: Works immediately without GitHub Actions
- Animated GIF card: Records the actual Three.js scene with Playwright, converts it into a GIF with FFmpeg, and updates it automatically every day using GitHub Actions
The generated card can be embedded directly into a GitHub profile README.
Example:
Other features
- GitHub OAuth authentication
- REST API and GraphQL API integration
- Achievements for development milestones
- Unlockable titles
- AI-generated colors and planet names for unregistered languages using Gemini
- Japanese and English localization
- Shareable static and animated profile cards
- Real-time user visits and shooting-star events
Under the hood
- HTML, CSS, and Vanilla JavaScript with ES Modules
- Three.js, WebGL, custom GLSL shaders, and Anime.js
ShaderMaterialMeshStandardMaterial.onBeforeCompile()- Layered transparent spheres and additive blending
- Node.js and Express
- Socket.IO and GitHub Webhooks
- GitHub OAuth 2.0, REST API, and GraphQL API
- PostgreSQL and
connect-pg-simple - Google Gemini API
- Docker and Google Cloud Run
- GitHub Actions, Playwright, and FFmpeg
- Node.js Test Runner
The backend is structured as a layered modular monolith:
Browser
↓
Presentation
↓
Application
↓
Domain
↓
Infrastructure
GitHub Webhook → Express → Socket.IO → Browser
Try it
Live application
Source code
This was built as a two-person student project.
I worked on the backend, GitHub integration, real-time functionality, infrastructure, and deployment.
My teammate, @lenagig, worked on the frontend and visual design.
I would especially appreciate feedback on one thing:
Which planet has the clearest visual identity at a glance, and which one feels the hardest to distinguish?
Thanks for checking it out!







