Free · markdown one-liner · honest about Camo

GitHub README
view counter badge

Drop a live counter onto any GitHub README. Customize label, both colors, switch between total and unique. Counts every Camo fetch — directionally accurate for popularity, see the FAQ for the GitHub-specific caveats.

Pick a style

views12.4kreadme views847visitors3,120stars192since 20255.2kunique1,034

Markdown:

![views](https://gettrack.link/p/<your-slug>/badge.svg?label=views&color=brightgreen)

Three steps

1

Sign up free

10 pixels included on the free plan. No credit card.

2

Create a pixel

Pick a slug like myrepo-views. Customize the badge: label text, both colors, total or unique.

3

Paste in README

Copy the markdown one-liner from the dashboard. Commit. Done.

What GitHub Camo does to your stats

GitHub never lets the viewer's browser fetch a README image directly. Every <img> goes through Camo (camo.githubusercontent.com), GitHub's privacy-preserving image proxy. Camo:

  • Strips the Referer header — we can't tell which repo page the viewer is on
  • Uses GitHub IPs (140.82.x.x) — every hit shows up as US
  • Sends a fixed UA — "github-camo" — so browser / OS / device data is meaningless
  • Caches the response (~5–10 min for popular badges) — multiple viewers in a cache window count as one hit
  • Counts still increment on every cache miss — the badge value tracks README impressions reasonably well

This affects every counter badge on GitHub, not just Track Link. shields.io and hits.seeyoufarm have the same limit. If you want full geo / device data, embed the same pixel on your blog or docs site (where the request reaches your viewer's browser directly).

FAQ

Will the counter show the actual number of viewers?

It shows the number of times GitHub's Camo proxy fetched the badge — which is close, but not 1:1 with viewers. Camo caches each badge response (~5–10 minutes for popular READMEs based on observation), so two viewers within a cache window count as one. Two refreshes by the same viewer often count as one. The number is a lower bound on real impressions; rapid back-to-back refreshes by the same person are deduplicated by Camo, not by us. For directional popularity (is this README getting attention?) it's accurate. For exact view counts it's not — and no GitHub README counter on the planet gets exact counts because Camo sits in the middle.

Why is every visitor showing up as 'United States'?

Because GitHub's Camo service fetches every README image from its own US-based datacenters and proxies the result to the viewer. Track Link sees the request coming from Camo's IP (140.82.x.x), not the viewer's IP. So geo data on every hit is 'US, github-camo UA'. This is identical for shields.io, hits.seeyoufarm, and any other counter — Camo is upstream of all of us. For accurate viewer geo, embed the pixel on a non-GitHub page (your own blog, docs, landing page).

Is this safe to put on a public repo?

Yes. The badge URL is public anyway — GitHub embeds it server-side. The endpoint only records hit counts and Camo metadata; nothing about your repo, no scopes, no GitHub auth. Worst case someone scripts thousands of hits to the badge URL to inflate your count. We rate-limit at 600/min per IP at the API edge, and Camo itself caches on its end so spam is largely absorbed.

Can I show 'unique views' instead of total?

Yes — append ?unique=true to the badge URL. We tag uniqueness on each hit using a fingerprint (IP + user-agent + screen). Inside a Camo cache window the same viewer hits us once anyway, so total and unique tend to converge on GitHub. The flag is more useful for non-GitHub embeds where you want '1,200 unique readers' versus '4,300 total page loads'.

How does this compare to shields.io's GitHub counters?

shields.io shows static repo metadata pulled from GitHub's API: stars, forks, last commit, contributors. It doesn't count views — GitHub's API doesn't expose view counts publicly. Track Link's pixel counts every Camo fetch of your badge, which is a noisy proxy for views. They're complementary: shields.io tells you what GitHub knows about your repo, Track Link's counter tells you how often your README is being looked at.

Is it really free?

Yes. Free tier: 10 pixels, 2,500 hits/month, 7-day analytics retention. Counter badges keep working past the analytics retention window — the lifetime hit number stays visible on your README forever, even on FREE. Paid plans raise the cap and analytics depth, not the badge itself.

Stick a counter on your README

Free forever. 10 pixels included. Counter badges always live, even if you blow through the free hit cap.