Counterscale
Scalable web analytics that runs on Cloudflare Workers
Counterscale is a simple, privacy-friendly web analytics tool designed to be easy to deploy and maintain on Cloudflare Workers. It tracks page views and visitors with minimal infrastructure.
Key features
- Runs on Cloudflare Workers
- Privacy-friendly tracking
- Minimal infrastructure
- Cheap to operate
Pros & cons
Strengths
- Almost free to run
- Very easy deployment
Trade-offs
- Cloudflare dependency
- Basic feature set
Counterscale replaces
Last reviewed Sep 13, 2026 · 815 words
Counterscale is self-hosted analytics with no host. It deploys as a Cloudflare Worker that writes page views into Cloudflare's Analytics Engine, and the "server" you operate is a free-tier account plus one API token. For a personal site or a handful of small projects the monthly cost rounds to zero, there is nothing to update, nothing to back up and nothing that can fill a disk. The price is that every byte lives inside Cloudflare, and that the underlying store keeps only about 90 days of data. Whether that is a fair trade depends on how much you meant the word "self-hosted" when you typed it into the search box.
Deployed from a laptop in under 10 minutes
There is no compose file because there is no container. The install is a CLI that provisions the Worker and the Analytics Engine dataset on your account:
npx @counterscale/cli@latest install
It prompts for a Cloudflare API token with Workers and Analytics Engine permissions, creates the Worker, and prints a URL such as counterscale.your-subdomain.workers.dev. Add a custom domain in the Workers dashboard if you want the dashboard on stats.example.org. Then drop the tracker into each site:
<script id="counterscale-script"
data-site-id="example-org"
src="https://stats.example.org/tracker.js" defer></script>
The dashboard is the Worker itself, protected by the Cloudflare Access rule or basic auth you put in front of it; out of the box it is public, which is the first thing to change. Updates are npx @counterscale/cli@latest install again. That is the entire operations manual for a tool that was first released in 2024 and has 2,136 stars on the strength of exactly that brevity.
What it counts, and what it refuses to
Page views, unique visitors, referrers, top paths, country, browser and device, over a chosen date range. Visitor uniqueness is inferred from request headers and cache behaviour rather than a cookie, so there is no consent banner to argue about under GDPR, the same posture Plausible and Umami take. Beyond that the feature list stops. No custom events, no funnels, no goals, no UTM breakdowns beyond the referrer, no per-user API tokens, and no export button. If the questions you ask of analytics are "how many people, from where, reading what", it answers all three. If you have ever built a conversion funnel, you will hit the wall in the first week.
The 90-day retention is the number to plan around
Analytics Engine, the Cloudflare product underneath, retains data for a limited window (90 days at last check; verify against the current Analytics Engine documentation). Counterscale inherits that and does not roll data up into its own long-term store. A year-over-year comparison is therefore impossible without exporting on your own schedule, and there is no built-in exporter. For a blog that wants to know whether last week's post did well, that is fine. For a project tracking growth across quarters, it disqualifies the tool on its own. The dependence cuts both ways: Cloudflare's free Workers tier covers 100,000 requests a day, which is more page views than most self-hosters will ever see, and if Cloudflare changes the free tier the entire economics change with it.
Umami and Plausible cost a real server and keep the data forever
Both run as a container with a PostgreSQL database, both idle at a few hundred MB, and both hold years of history you can query and export. Umami adds events and multiple websites with team access; Plausible adds goals, funnels and a polished paid-hosting option. The Plausible versus Umami comparison splits those two; GoatCounter is the lightest option that still gives you a real database, running happily in a single SQLite-backed binary. Counterscale beats all three only when you have no server and do not want one. My broader case for leaving Google's product is in ditching Google Analytics, and Counterscale is a legitimate answer to it for the smallest sites.
What I'd do
If you already run a homelab with a reverse proxy, install Umami and be done; the marginal cost of one more container is nothing and you keep the data. If you have a static site on Cloudflare Pages or GitHub Pages and no server at all, Counterscale is the right size: 10 minutes to deploy, lock the dashboard behind Cloudflare Access on day one, and write a monthly calendar note to screenshot or scrape the numbers you care about before they age out. Do not call it self-hosted in the sense that matters for a threat model. Do call it the cheapest honest page counter available in 2026.
Compare Counterscale
19 head-to-head comparisons.
- Counterscale vs PostHog
- Counterscale vs Umami
- Counterscale vs Plausible
- Counterscale vs Matomo
- Counterscale vs Rybbit
- Counterscale vs Fathom Lite
- Counterscale vs OpenPanel
- Counterscale vs GoatCounter
- Counterscale vs Ackee
- Counterscale vs Shynet
- Counterscale vs Tianji
- Counterscale vs Open Web Analytics
- Counterscale vs Vince Analytics
- Counterscale vs Litlyx
- Counterscale vs Swetrix
- Counterscale vs Pirsch
- Counterscale vs Counter.dev Selfhost
- Counterscale vs Offen Fair Web Analytics
- Counterscale vs Medama
Similar web analytics apps
Superset
Web AnalyticsModern data exploration and visualization platform
Replaces Tableau, Power BI
Metabase
Web AnalyticsOpen-source business intelligence and dashboards
Replaces Tableau, Looker
PostHog
Web AnalyticsOpen-source product analytics platform
Replaces Google Analytics, Mixpanel
Umami
Web AnalyticsSimple, fast, privacy-focused web analytics
Replaces Google Analytics
Postiz
Web AnalyticsSchedule posts, track the performance of your content, and manage all
Replaces Buffer, Hootsuite
Netron
Web AnalyticsVisualizer for neural network and machine learning models