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)

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

Repo detailsthe review · specs · pros & cons · install

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.

Why it matters

You still have not installed Umami. GoAccess (Ed.8 #4) is answering that for now, but it 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 (Hetzner). If Cloudflare already fronts Grasppy for DNS or CDN, this is genuinely the fastest analytics answer of the year. If not, it's a question of whether you want to add Cloudflare in front of everything — 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 Grasppy's 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 the Hetzner 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

How to get it

Standalone script tag on grasppy.com.

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.