Live demo
Your own GitHub profile views counter.
Free forever. Can’t break.
A drop-in replacement for komarev.com/ghpvc — except you own the URL,
you own the data, and there’s no third-party service that can go down
on a random Tuesday.
This badge counts up every time you reload this page
Rendered by /api/views?id=demo — the same Edge function the project ships.
Pick a style. Copy the markdown. Done.
&leftColor=1F2937&rightColor=FF6B35
&style=flat-square&rightColor=blue
&label=Hits&rightColor=4c1
How to use it in your README

Why a self-hosted counter?
Every public counter service eventually goes down, gets rate-limited or
disappears. When that happens, your historical count resets to zero and
your profile shows a broken image. profile-counter
runs on your own Vercel + Upstash — both free tiers — so the
only person who can break it is you. Source code is MIT, ~300 lines of
JavaScript, no shields.io dependency.
What you get
- ✓ Vercel Edge Function, sub-100ms cold start
- ✓ Atomic INCR on Upstash Redis — concurrent visits never lose a count
- ✓ Migration script to seed your old komarev count
- ✓ Track multiple pages with ?id= — one deploy, infinite counters
- ✓ Two badge styles (flat, flat-square) — no shields.io needed
- ✓ MIT, ~300 lines, fork-friendly