Skip to content

feat(github): contribution heatmap, monthly deltas and language mix - #249

Merged
kashalls merged 2 commits into
mainfrom
kashall/github-stats-ideas-683fa5
Oct 6, 2026
Merged

kashalls merged 2 commits into
mainfrom
kashall/github-stats-ideas-683fa5

Conversation

@kashalls

@kashalls kashalls commented Oct 5, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Replaces the four lifetime-total tiles with an 18-week contribution heatmap (hover a day for its count and date) and current streak, two wider Pull Request / Commit cards with "+N this month", and a language breakdown bar (top 5 by bytes across public, non-fork repos, using GitHub's language colors).
  • Moves /api/github to one GraphQL request (1 rate-limit point) for PR counts, the calendar and languages, plus two REST commit searches (GraphQL search can't query commits). Counts still come from search queries, so PR numbers match what the panel showed before.

Freshness

  • Server cache: maxAge drops from 1 hour to 60s with SWR. Failed fetches still aren't cached, and the last good value is served for up to an hour if GitHub is down.
  • Client: the panel refetches every 60s. Background refreshes keep the current values on screen instead of flashing skeletons.

Notes

  • NUXT_GITHUB_TOKEN is now required (GraphQL rejects anonymous requests). Production already gets it from the ok8-sh ExternalSecret.
  • Removes the decorative Bg*.vue tile backgrounds, which nothing uses anymore.

Test plan

  • bun run build succeeds
  • /api/github returns real counts, an 18-week calendar, the streak and languages in local dev
  • Cache revalidates after 60s (fetchedAt advances)
  • Panel checked visually at desktop and 390px widths

馃 Generated with Claude Code

kashalls and others added 2 commits October 5, 2026 13:35
Replace the four lifetime-total tiles with an 18-week contribution
heatmap and streak, two wider PR/issue cards with "this month" deltas,
and a language breakdown bar.

All data now comes from a single GraphQL request (1 rate-limit point),
so the server cache drops from 1 hour to 60 seconds and the panel
refreshes itself every minute. NUXT_GITHUB_TOKEN is now required.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Jordan Jones <git@svcs.ok8.sh>
Swap the Issues card for lifetime commits (REST commit search, which
GraphQL search can't do) and show each heatmap day's contribution count
and date on hover via a single shared tooltip.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Jordan Jones <git@svcs.ok8.sh>
@kashalls
kashalls merged commit 6c8ee1f into main Oct 6, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant