More (Green) Glow on My Desk

More (Green) Glow on My Desk

Bringing the GitHub Contribution Graph to Life

There is a certain rhythm to a developer’s life, often measured in the small green squares of a GitHub contribution graph. For years, that graph lived behind a browser tab; a digital ghost of my productivity. But as I’ve rediscovered my love for 3 AM coding and the tactile world of IoT, I wanted to pull that data out of the screen and onto my desk.

My latest project does exactly that: a dedicated GitHub Contributions Monitor powered by an ESP32-C6.

The Why: Beyond the Browser

In my personal "creative outlet" phase, data is about inspiration. I wanted a physical object that served as a heartbeat for my projects: A reminder of the momentum I've built, glowing right next to my keyboard.

There is something deeply satisfying about seeing a year’s worth of effort rendered on a crisp 1.47" IPS display. It’s not just a "monitor widget"; it’s a tiny trophy for every bug fixed and every late-night breakthrough on an Arduino or ESP device.

The How: Seamless Integration

I designed this to be "set and forget," bridging the gap between technical complexity and hobbyist accessibility:

  • The Visual Experience: Using the LVGL graphics library, the device renders a full 53-week heatmap using GitHub’s iconic green color scale. It doesn't just show the grid; it cycles to a stats screen that tracks current streaks and total contributions.
  • Zero-Friction Setup: I wanted to avoid the "compile, flash, repeat" cycle. The firmware features a built-in Web Config Portal. On its first boot, the device acts as a WiFi access point. You simply connect with your phone, enter your GitHub details and WiFi credentials, and it’s live.
  • The Tech Stack: It leverages an ESP32-C6 and the GitHub GraphQL API to fetch data securely. All settings are stored in the device's non-volatile storage, so even if I unplug it (reminiscent of my old ZX Spectrum days!), it remembers exactly who I am the moment it gets power again.

The Result

Now, instead of checking a website to see my progress, I just glance down. Seeing that "busy day" stat or a long streak displayed in a "breathing" animation provides that extra bit of creative fuel. It’s a small bridge between functional engineering and the personal joy of pure, hobbyist code.

It’s functional, it’s green (and it glows based on activity RGB!).
It’s a homage to coding: and to keep going, keep contributing.