README Generator
Badges & Tools7 min read

How to Add GitHub Stats Cards to Your README (2026 Guide)

Step-by-step guide to adding GitHub stats cards, language cards, streak stats, and WakaTime cards to your GitHub profile README using github-readme-stats.

By AI README Generator TeamPublished

Dynamic stats cards are the difference between a static README and one that tells a living story. When recruiters or collaborators visit your profile, a well-placed stats card answers the question they're really asking: does this developer actually ship code?

This guide covers every major card type from the anuraghazra/github-readme-stats ecosystem — the most popular GitHub profile stats tool with over 70,000 stars — plus streak stats, WakaTime cards, and how to arrange them so your README doesn't look like a dashboard exploded.

The GitHub Stats Card

The core stats card shows your total stars earned, total commits, pull requests, issues, and contribution score. Adding it takes one line of markdown:

![GitHub Stats](https://github-readme-stats.vercel.app/api?username=YOUR_USERNAME&show_icons=true&theme=radical)

Replace YOUR_USERNAME with your actual GitHub username. That's it. No tokens, no configuration files, no GitHub Actions workflow to set up.

Key parameters to know:

| Parameter | What it does | Example | |-----------|-------------|---------| | show_icons=true | Adds icons next to each stat | &show_icons=true | | theme | Sets the color theme | &theme=tokyonight | | hide | Hides specific stats | &hide=contribs,prs | | count_private=true | Counts private repo contributions | &count_private=true | | include_all_commits=true | Shows commits from all years, not just the current year | &include_all_commits=true |

The count_private=true parameter matters more than most people realize. If you do meaningful work in private repos — which most professional developers do — your stats will look deflated without it. Enable it, and your contribution graph reflects reality.

Picking a Theme

The stats card ships with 30+ themes. The most commonly used:

  • default — light mode, blue accents
  • dark — dark background, white text
  • radical — pink/purple gradient, high contrast
  • tokyonight — dark navy with pastel accents, very popular in 2025-2026
  • dracula — dark with purple highlights
  • gruvbox — warm amber and green, readable at any size
  • transparent — no background; blends with GitHub's own page background

For most profiles, transparent or tokyonight work well across both GitHub's light and dark modes. Avoid themes with light backgrounds on dark mode profiles — they create an awkward white box effect.

The Top Languages Card

The language card shows which programming languages appear most in your public repositories, weighted by byte count:

![Top Languages](https://github-readme-stats.vercel.app/api/top-langs/?username=YOUR_USERNAME&layout=compact&theme=tokyonight)

Layouts:

  • layout=default — bar chart for each language
  • layout=compact — smaller card, one row per language
  • layout=donut — pie chart (visually interesting, but can be hard to read)
  • layout=pie — similar to donut
  • layout=donut-vertical — vertical donut layout

The compact layout is the most readable when placed side-by-side with the stats card.

An honest caveat: the language card counts bytes of code, not time spent or proficiency. If you forked a large JavaScript project once, it'll dominate your chart. You can exclude repos that skew your results:

![Top Languages](https://github-readme-stats.vercel.app/api/top-langs/?username=YOUR_USERNAME&exclude_repo=repo1,repo2&layout=compact)

You can also hide specific languages (useful for excluding HTML/CSS from a portfolio that's mostly JavaScript):

![Top Languages](https://github-readme-stats.vercel.app/api/top-langs/?username=YOUR_USERNAME&hide=html,css)

GitHub Streak Stats

Streak stats show your current contribution streak, longest streak ever, and total contributions. This comes from a separate project — DenverCoder1/github-readme-streak-stats:

[![GitHub Streak](https://streak-stats.demolab.com?user=YOUR_USERNAME&theme=tokyonight)](https://git.io/streak-stats)

Note the URL is streak-stats.demolab.com, not the github-readme-stats domain. The streak card has its own theming system with matching themes (tokyonight, dark, radical, etc.).

Why streak stats matter for your profile: Consistency is a proxy for reliability. A long streak tells a visitor you code regularly, not just in bursts around hackathons. Even a modest 30-day streak signals active engagement with your craft.

One practical note: GitHub only counts contributions on days you push commits, open PRs, review code, or create issues in the default branch. Contributions to non-default branches don't count unless they get merged.

WakaTime Coding Activity Card

If you use WakaTime to track your coding time, you can display it as a card showing time per language over the past week:

![WakaTime Stats](https://github-readme-stats.vercel.app/api/wakatime?username=YOUR_WAKATIME_USERNAME)

Note this uses your WakaTime username, not your GitHub username. You'll need to:

  1. Sign up for WakaTime (free plan available)
  2. Install the WakaTime plugin for your editor (VS Code, JetBrains, Vim, etc.)
  3. Find your WakaTime username in your profile settings
  4. Make your WakaTime profile public (required for the card to work)

The WakaTime card is the most compelling card for demonstrating active, recent coding activity. Real hours logged per week is harder to fake than GitHub contribution counts.

Arranging Multiple Cards

Most READMEs that include stats cards go wrong in the same way: they stack cards vertically, turning the README into an endless scroll. The better approach is to place them side by side using a simple HTML table:

<div align="center">
  <img src="https://github-readme-stats.vercel.app/api?username=YOUR_USERNAME&show_icons=true&theme=tokyonight&count_private=true" height="150" />
  <img src="https://github-readme-stats.vercel.app/api/top-langs/?username=YOUR_USERNAME&layout=compact&theme=tokyonight" height="150" />
</div>

The height="150" attribute forces both cards to the same height, creating a clean two-column layout. You can add the streak card below:

<div align="center">
  <img src="https://streak-stats.demolab.com?user=YOUR_USERNAME&theme=tokyonight" height="150" />
</div>

Don't use all four cards. Pick two or three that tell the most relevant story for where you are in your career:

  • Students and juniors: Stats card + Languages card. Show you're actively learning.
  • Mid-level engineers: Stats card + Streak card. Show consistency.
  • Senior engineers and leads: WakaTime card + Stats card. Time invested speaks for itself.

Self-Hosting for Reliability

The public github-readme-stats instances have rate limits. If your profile gets significant traffic, cards may occasionally fail to load and display a broken image. The project is open source — you can deploy your own instance on Vercel in about 5 minutes:

  1. Fork anuraghazra/github-readme-stats
  2. Deploy to Vercel (one-click, no configuration needed)
  3. Set the PAT_1 environment variable to a GitHub personal access token
  4. Replace the domain in your card URLs with your own Vercel URL

Self-hosting eliminates rate limit issues and gives you control over the instance. For anyone whose profile is a professional showcase, it's worth the 5-minute setup.

Troubleshooting Common Issues

Card shows "Maximum retries exceeded": The API is rate-limited. Wait a few minutes or consider self-hosting.

Language percentages don't look right: Check exclude_repo to remove forked or unused repos. Add &hide=html,css to exclude markup languages if you're primarily a backend developer.

Stats look low for a senior developer: Add &count_private=true and &include_all_commits=true. Many experienced engineers do most of their work in private repositories.

Cards don't match across light/dark mode: Use the transparent theme. GitHub renders the card's background as transparent, matching whatever theme the visitor has set.

Putting It Together

A complete stats section might look like this:

<div align="center">
  <img src="https://github-readme-stats.vercel.app/api?username=johndoe&show_icons=true&theme=tokyonight&count_private=true&include_all_commits=true" height="150" />
  <img src="https://github-readme-stats.vercel.app/api/top-langs/?username=johndoe&layout=compact&theme=tokyonight&hide=html,css" height="150" />
</div>

<div align="center">
  <img src="https://streak-stats.demolab.com?user=johndoe&theme=tokyonight" height="150" />
</div>

Readable, consistent theming, and no card that doesn't earn its space. Your README should answer "can this person code?" in about 10 seconds. Stats cards, done right, do exactly that.

Generate Your Full README

Stats cards are one piece. An effective GitHub profile README also needs a clear headline, project showcases, and a call to action. Use our AI GitHub Profile README Generator to build the complete picture — it reads your actual GitHub data and writes a README tailored to your profile, skills, and the impression you want to make.

Generate Your GitHub Profile README

Ready to create your own standout GitHub profile README? Try our AI generator — free, no sign-up required.

Try It Free — No Sign Up

Related Articles