Check your GitHub’s pulse. Four free tools in one site: turn your stars into a video, put a live card on your profile, get your repo roasted, and find out who unfollowed you.
Live: https://hemashreevi.github.io/gitpulse/
No login and no backend: everything runs in your browser on GitHub’s public API. The Dev Card and weekly follower report run as a free GitHub Action in your repo.
Screenshots use sample data.
Enter any repo, or race up to 3 repos, and watch the stars grow with milestones (🎉 1k stars · Mar 2024). Download it as a video in 16:9 (YouTube), 9:16 (Shorts/Reels) or 1:1 (LinkedIn), or as a PNG.
Small repos use every star’s exact date. For large repos the curve is estimated from 12 evenly spaced samples, the same trick star-history.com uses.
Share link: …/gitpulse/#/stars/owner/repo/owner2/repo2
Shows stars, followers, contributions, current and best streak, top languages, and your developer personality (🦉 Night Owl, 🏃 Marathoner, 🌍 Polyglot…). It comes in 5 themes.
Add it to your profile in two minutes: open the Dev Card page and press “Add workflow on GitHub”. That opens GitHub with the workflow already filled in. You can also add it by hand to .github/workflows/gitpulse.yml in your username/username repo:
name: GitPulse
on:
schedule:
- cron: "17 5 * * *" # Dev Card: every day
- cron: "23 6 * * 1" # Follower report: every Monday
workflow_dispatch:
permissions:
contents: write
issues: write
jobs:
gitpulse:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: HemashreeVI/gitpulse@v1
with:
mode: ${{ (github.event.schedule == '23 6 * * 1' || github.event_name == 'workflow_dispatch') && 'both' || 'card' }}
theme: midnightThen put this in your README:
Paste any public repo. GitPulse reads the README, the file tree, recent commit messages and the metadata, then roasts it in mild or extra spicy mode. Every roast comes with a real fix. You get a score out of 100, a grade from S to F, and a share image.
It catches things like a missing or template README, no screenshots or install steps, a committed .env or node_modules, “fix / update / asdf” commit messages, no license, no tests or CI, no live demo, files named final_v2 (copy).js, and repos untouched for years.
- Don’t follow you back: people you follow who don’t follow you.
- Fans: people who follow you that you don’t follow back.
- Mutuals.
- Since last check: exactly who followed and who unfollowed since your last visit. The snapshot is saved in your browser.
For a weekly email, turn on the follower report in the Action above. Every Monday it compares your followers with last week’s snapshot, which it keeps in .gitpulse/followers.json. Then it opens an issue in your repo listing new followers and unfollows, and GitHub emails it to you.
| Input | Default | |
|---|---|---|
mode |
card |
card, followers or both |
username |
repo owner | whose card or followers |
theme |
midnight |
midnight, light, neon, sunset, forest |
card-path |
gitpulse-card.svg |
where the card is written |
animate |
true |
fade-in animation on the card |
snapshot-path |
.gitpulse/followers.json |
follower snapshot |
issue |
true |
open an issue with the follower report |
report-unchanged |
false |
open a report even when nothing changed |
commit |
true |
commit the updated files |
The card’s avatar is embedded in the SVG, because README images can’t load external images inside an SVG. Contributions and streaks come from GitHub’s GraphQL API, using the workflow’s own token.
Without a token, GitHub allows 60 requests an hour per network. If you hit the limit, click ⚙️ and paste a token with no scopes, which raises it to 5,000. The token stays in your tab and is only sent to GitHub.
React 19 + Vite · Canvas + MediaRecorder for the videos · html-to-image for share images · pure-JS SVG for the card · GitHub Pages + a dependency-free composite Action.
All the logic lives in pure, unit-tested modules that the website and the Action share:
src/lib/stars.js star history sampling, milestones, growth
src/lib/roast.js roast rules, score, grade
src/lib/card.js Dev Card SVG renderer (5 themes)
src/lib/cardData.js card data gathering (I/O injected → browser or Action)
src/lib/followers.js follower diffs, relationships, weekly report
src/lib/starCanvas.js star-race animation frames
action/index.mjs the GitHub Action
npm install
npm run dev
npm test # 18 tests: stats, roast, card, followers and the Action (mocked GitHub)
npm run buildMIT © Hemashree VI · Byte Decoded on YouTube · Also check out GitHub Wrapped.




