Getting found · Edition No. 9 · 3 Sep 2026

benvinegar/counterscale

A Cloudflare Worker plus one Analytics Engine binding — the cheapest analytics service you can run this year.

← Getting foundRead the whole edition →
07

benvinegar/counterscale

💎 hidden gem

2.1k stars · MIT · v3.4.1 (2025-12-15) · Track this in Scout

A Cloudflare Worker plus one Analytics Engine binding — the cheapest analytics service you can run this year.

▶Repo detailsthe review · specs · pros & cons

What it is

A tiny web analytics service purpose-built for Cloudflare Workers. Runs on Cloudflare's free tier (Workers + Analytics Engine, effectively zero dollars for small sites) and shows visits, pageviews, referrers, top pages, countries and browsers in a Remix dashboard.

What it is good for. GoAccess (Ed.8 #4) reads log files but cannot show a visitor journey. Counterscale is Umami's spiritual opposite: it runs on infrastructure you don't own (Cloudflare) instead of hardware you do. If Cloudflare already fronts the site for DNS or CDN, this is genuinely the fastest analytics answer of the year. If not, the question is whether adding Cloudflare in front of everything is worth it — then re-read the Umami repeat in Edition 5.

Stars2.1k
LicenceMIT
Latestv3.4.1 (2025-12-15)checked 7 Sep 2026
Written inTypeScript
NeedsA Cloudflare account with Analytics Engine enabled, an API token, and Node.js
RunsOn Cloudflare Workers — hosted, not on your own server
Setup effort
2 / 5
Payoff
3 / 5
Good
  • Free on Cloudflare Workers' free tier — genuinely $0/month at small-site traffic
  • Single Worker file; you can read and patch it in one afternoon
  • Ships with a dashboard, not just a data collector
Watch for
  • Cloudflare-only — not portable to a self-hosted box, which is the ledger's home turf
  • Ties analytics to a vendor whose terms and free tier can change
  • Ben Vinegar (ex-Sentry) is essentially the one maintainer — good sign, not a large team
Replaces

Google Analytics, and the cost of running your own analytics box

Works well with

Nothing on your server — deliberately separate infrastructure, so an outage on one does not take the other

Screenshots
benvinegar/counterscale: GitHub preview card

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.