finds.dev← search

// the find

DenverCoder1/github-readme-streak-stats

★ 7,036 · PHP · MIT · updated Jul 2026

🔥 Stay motivated and show off your contribution streak! 🌟 Display your total contributions, current streak, and longest streak on your GitHub profile README

A PHP service that generates SVG cards showing your GitHub contribution streak stats, designed to drop into a profile README with a single image tag. It's a pure display layer — no storage, no auth — just scrapes your public contribution graph and renders it. The audience is developers who care about their GitHub profile aesthetics.

The self-hosting story is genuinely good: Vercel deploy button, Heroku buildpack, GitHub Actions mode that commits a static SVG so your README doesn't depend on a third-party server at all. Locale support is impressive — 60+ languages with a PHP Intl fallback for date formatting even when translations aren't complete. The test suite actually renders SVGs and diffs them against expected fixtures, which catches regressions that unit tests on the data layer would miss. The 'weekly mode' option is a thoughtful addition for people who contribute in bursts rather than daily.

It scrapes GitHub's contribution graph HTML rather than using the GraphQL API, so any GitHub redesign breaks it silently — there's no schema contract. The PHP + Inkscape stack is heavier than it looks: PNG rendering requires Inkscape installed on the server, which rules out Vercel and most lightweight hosts without extra work. Caching is file-based with no TTL enforcement visible in the public code, meaning a thundering herd of profile visits could hammer GitHub or serve stale data indefinitely. The public hosted endpoint (streak-stats.demolab.com) is a single point of failure that 7k+ repos depend on, and the README quietly admits you should self-host 'for better reliability' without quantifying how unreliable the shared one actually is.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →