GitPedia
benvinegar

benvinegar/counterscale

Scalable web analytics you run yourself on Cloudflare

24 Releases
Latest: 6mo ago
v3.4.1Latest
stordahlstordahl·6mo ago·December 15, 2025
GitHub

**Full Changelog**: https://github.com/benvinegar/counterscale/compare/v3.4.0...v3.4.1

v3.4.0
stordahlstordahl·6mo ago·December 14, 2025
GitHub

📋 What's Changed

  • Update some dependencies by @stordahl in https://github.com/benvinegar/counterscale/pull/239
  • fix: truncate table card row cells by @makepanic in https://github.com/benvinegar/counterscale/pull/238
  • Allow tracker script name configuration via secret by @stordahl in https://github.com/benvinegar/counterscale/pull/234
  • Enable long-term storage via Apache Arrow + R2 by @stordahl in https://github.com/benvinegar/counterscale/pull/237
  • Accept Referrer via query params by @stordahl in https://github.com/benvinegar/counterscale/pull/240

New Contributors

  • @makepanic made their first contribution in https://github.com/benvinegar/counterscale/pull/238
  • Full Changelog: https://github.com/benvinegar/counterscale/compare/v3.3.0...v3.4.0
v3.3.0
stordahlstordahl·8mo ago·October 15, 2025
GitHub

📋 What's Changed

  • fix: link pkgs via pnpm-workspaces.yaml instead of npmrc by @stordahl in https://github.com/benvinegar/counterscale/pull/220
  • chore: upgrade zx by @stordahl in https://github.com/benvinegar/counterscale/pull/219
  • Fix: Wrap Long URLs in TableCard Component by @congdv in https://github.com/benvinegar/counterscale/pull/221
  • Tweaked analytics engine enable steps by @sean-lynch in https://github.com/benvinegar/counterscale/pull/223
  • UTM Tracking by @stordahl in https://github.com/benvinegar/counterscale/pull/222
  • feat: token validation on install by @stordahl in https://github.com/benvinegar/counterscale/pull/224
  • Use fixed intervals instead of NOW() in queries by @stordahl in https://github.com/benvinegar/counterscale/pull/225
  • chore: add issue templates by @stordahl in https://github.com/benvinegar/counterscale/pull/226
  • + 3 more

New Contributors

  • @congdv made their first contribution in https://github.com/benvinegar/counterscale/pull/221
  • @sean-lynch made their first contribution in https://github.com/benvinegar/counterscale/pull/223
  • Full Changelog: https://github.com/benvinegar/counterscale/compare/v3.2.0...v3.3.0

📦 ⚠️ Upgrading from 2.x or earlier ###

  • See release notes for [v3.0.0](https://github.com/benvinegar/counterscale/releases/v3.0.0).
v3.2.0
stordahlstordahl·10mo ago·August 27, 2025
GitHub

📋 What's Changed

  • Add noindex meta tag to Layout by @stordahl in https://github.com/benvinegar/counterscale/pull/198
  • Improve init and add related functions by @stordahl in https://github.com/benvinegar/counterscale/pull/205
  • custom 404 page done by @heyysiri in https://github.com/benvinegar/counterscale/pull/206
  • chore: update React Router packages by @stordahl in https://github.com/benvinegar/counterscale/pull/209
  • External Referrer Links by @stordahl in https://github.com/benvinegar/counterscale/pull/208
  • Single User Auth by @stordahl in https://github.com/benvinegar/counterscale/pull/202
  • cli: add auth commands by @stordahl in https://github.com/benvinegar/counterscale/pull/211
  • fix: rm @types/bcryptjs by @stordahl in https://github.com/benvinegar/counterscale/pull/214
  • + 4 more

New Contributors

  • @stordahl made their first contribution in https://github.com/benvinegar/counterscale/pull/198
  • @heyysiri made their first contribution in https://github.com/benvinegar/counterscale/pull/206
  • Full Changelog: https://github.com/benvinegar/counterscale/compare/v3.1.0...v3.2.0

📦 ⚠️ Upgrading from 2.x or earlier ###

  • See release notes for [v3.0.0](https://github.com/benvinegar/counterscale/releases/v3.0.0).
v3.2.0-beta.0Pre-release
stordahlstordahl·10mo ago·August 12, 2025
GitHub

📋 What's Changed

  • Add noindex meta tag to Layout by @stordahl in https://github.com/benvinegar/counterscale/pull/198
  • Improve init and add related functions by @stordahl in https://github.com/benvinegar/counterscale/pull/205
  • custom 404 page done by @heyysiri in https://github.com/benvinegar/counterscale/pull/206
  • chore: update React Router packages by @stordahl in https://github.com/benvinegar/counterscale/pull/209
  • External Referrer Links by @stordahl in https://github.com/benvinegar/counterscale/pull/208
  • Single User Auth by @stordahl in https://github.com/benvinegar/counterscale/pull/202
  • cli: add auth commands by @stordahl in https://github.com/benvinegar/counterscale/pull/211

New Contributors

  • @stordahl made their first contribution in https://github.com/benvinegar/counterscale/pull/198
  • @heyysiri made their first contribution in https://github.com/benvinegar/counterscale/pull/206
  • Full Changelog: https://github.com/benvinegar/counterscale/compare/v3.1.0...v3.2.0-beta.0

📦 ⚠️ Upgrading from 2.x or earlier ###

  • See release notes for [v3.0.0](https://github.com/benvinegar/counterscale/releases/v3.0.0).
v3.1.0
benvinegarbenvinegar·11mo ago·July 6, 2025
GitHub

📋 What's Changed

  • feat: Cloudflare multi-account support in https://github.com/benvinegar/counterscale/pull/191
  • chore: Upgrade to Wrangler 4.x in https://github.com/benvinegar/counterscale/commit/c397a80d9b1eeb3180cf954d52f5889cb2e6a81d
  • fix: Dashboard admin URL redirect in https://github.com/benvinegar/counterscale/pull/190

New Contributors

  • @sergical made their first contribution in https://github.com/benvinegar/counterscale/pull/190
  • Full Changelog: https://github.com/benvinegar/counterscale/compare/v3.0.0...v3.1.0

📦 ⚠️ Upgrading from 2.x or earlier ###

  • See release notes for [v3.0.0](https://github.com/benvinegar/counterscale/releases/v3.0.0).
v3.0.0
benvinegarbenvinegar·1y ago·April 9, 2025
GitHub

📋 Changes

  • New CLI installer (`npx @counterscale/cli install`)
  • Deploys as a Cloudflare Worker again (no longer uses Cloudflare Pages)
  • Uses `pnpm` package manager for development
  • Upgrade to ESLint 9 + add config package packages/eslint-config
  • Major improvements to visitor/bounce rate detection

📦 Upgrading from v2.x

  • The biggest change here is that v2.x deployed Counterscale as a Cloudflare _Pages_ project, whereas v3.x deploys it as a Cloudflare _Worker_.
  • First, run the installer and follow the prompts:
  • ```bash
  • npx @counterscale/cli@latest install
  • ```

📦 Tracking Scripts

  • ⚠️ You will need to update your tracking script(s) to point to this new URL. The installer will emit sample code that illustrates how to use the new URL.
  • Your historical data will stay unchanged.

📦 Custom Domains

  • If you have a custom domain, you will need to delete that domain from the now-deprecated Cloudflare Pages project, and add it to the newly created Worker project.

📦 Upgrading from v1.x

  • Since v1.x also deployed as a Cloudflare Worker, upgrading should be trivial. Just run the new CLI installer and follow the prompts:
  • ```bash
  • npx @counterscale/cli@latest install
  • ```
  • It should emit the same URL as before.
v3.0.0-rc.1
benvinegarbenvinegar·1y ago·April 3, 2025
GitHub

📋 Changes

  • New CLI installer (`npx @counterscale/cli install`)
  • Deploys as a Cloudflare Worker again (no longer uses Cloudflare Pages)
  • Uses `pnpm` package manager for development
  • Upgrade to ESLint 9 + add config package packages/eslint-config
  • Major improvements to visitor/bounce rate detection

📦 Upgrading from v2.x

  • The biggest change here is that v2.x deployed Counterscale as a Cloudflare _Pages_ project, whereas v3.x deploys it as a Cloudflare _Worker_.
  • First, run the installer and follow the prompts:
  • ```bash
  • npx @counterscale/cli@latest install
  • ```

📦 Tracking Scripts

  • ⚠️ You will need to update your tracking script(s) to point to this new URL. The installer will emit sample code that illustrates how to use the new URL.
  • Your historical data will stay unchanged.

📦 Custom Domains

  • If you have a custom domain, you will need to delete that domain from the now-deprecated Cloudflare Pages project, and add it to the newly created Worker project.

📦 Upgrading from v1.x

  • Since v1.x also deployed as a Cloudflare Worker, upgrading should be trivial. Just run the new CLI installer and follow the prompts:
  • ```bash
  • npx @counterscale/cli@latest install
  • ```
  • It should emit the same URL as before.
v3.0.0-rc.0
benvinegarbenvinegar·1y ago·March 25, 2025
GitHub

📋 Changes

  • New CLI installer (`npx @counterscale/cli install`)
  • Deploys as a Cloudflare Worker again (no longer uses Cloudflare Pages)
  • Uses `pnpm` package manager for development
  • Upgrade to ESLint 9 + add config package packages/eslint-config

📦 Upgrading from v2.x

  • The biggest change here is that v2.x deployed Counterscale as a Cloudflare _Pages_ project, whereas v3.x deploys it as a Cloudflare _Worker_.
  • First, run the installer and follow the prompts:
  • ```bash
  • npx @counterscale/cli@latest install
  • ```

📦 Tracking Scripts

  • ⚠️ You will need to update your tracking script(s) to point to this new URL. The installer will emit sample code that illustrates how to use the new URL.
  • Your historical data will stay unchanged.

📦 Custom Domains

  • If you have a custom domain, you will need to delete that domain from the now-deprecated Cloudflare Pages project, and add it to the newly created Worker project.

📦 Upgrading from v1.x

  • Since v1.x also deployed as a Cloudflare Worker, upgrading should be trivial. Just run the new CLI installer and follow the prompts:
  • ```bash
  • npx @counterscale/cli@latest install
  • ```
  • It should emit the same URL as before.
v3.0.0-beta.3
benvinegarbenvinegar·1y ago·March 25, 2025
GitHub

📋 Changes

  • Fix Counterscale version not rendering in dashboard footer (#176)
v3.0.0-beta.2
benvinegarbenvinegar·1y ago·March 21, 2025
GitHub

📋 Changes

  • Fix bug where country was not being collected (#172)
  • Upgrade to ESLint 9 + add config package `packages/eslint-config` (#171)
v3.0.0-beta.1
benvinegarbenvinegar·1y ago·February 21, 2025
GitHub

📋 Changes

  • New CLI installer (`npx @counterscale/cli install`)
  • Deploys as a Cloudflare Worker again (no longer uses Cloudflare Pages)
  • Uses `pnpm` package manager for development

📦 Upgrading from v2.x

  • The biggest change here is that v2.x deployed Counterscale as a Cloudflare _Pages_ project, whereas v3.x deploys it as a Cloudflare _Worker_.
  • First, run the installer and follow the prompts:
  • ```bash
  • npx @counterscale/cli@latest install
  • ```

📦 Tracking Scripts

  • ⚠️ You will need to update your tracking script(s) to point to this new URL. The installer will emit sample code that illustrates how to use the new URL.
  • Your historical data will stay unchanged.

📦 Custom Domains

  • If you have a custom domain, you will need to delete that domain from the now-deprecated Cloudflare Pages project, and add it to the newly created Worker project.

📦 Upgrading from v1.x

  • Since v1.x also deployed as a Cloudflare Worker, upgrading should be trivial. Just run the new CLI installer and follow the prompts:
  • ```bash
  • npx @counterscale/cli@latest install
  • ```
  • It should emit the same URL as before.
v2.5.1
benvinegarbenvinegar·1y ago·January 24, 2025
GitHub

📋 Changes

  • Fixes a major bug where bounce rate data wasn't being collected (#148)
  • _If you are running v2.5.0, you are strongly encouraged to upgrade._
v2.5.0
benvinegarbenvinegar·1y ago·January 16, 2025
GitHub

📋 Changes

  • `/collect` endpoint now responds with `Access-Control-Allow: *` header (e2558aab1797cbc7c56c4904dd4799339d28055f)
  • Tracker now makes HTTP request to `/collect` using `XMLHttpRequest POST` (#143)
  • Can install tracker script as a TypeScript/JavaScript module (#143)
  • _See README for instructions / API_
  • Migrates to React Router 7 from Remix (#146)
v2.5.0-beta.3
benvinegarbenvinegar·1y ago·January 15, 2025
GitHub

📋 Changes

  • `/collect` endpoint now responds with `Access-Control-Allow: *` header (e2558aab1797cbc7c56c4904dd4799339d28055f)
  • Tracker now makes HTTP request to `/collect` using `XMLHttpRequest POST` (#143)
  • Can install tracker script as a TypeScript/JavaScript module (#143)
  • _See README for instructions / API_
v2.4.0
benvinegarbenvinegar·1y ago·January 8, 2025
GitHub

📋 Changes

  • Adds browser version tracking (#135)
  • Tracker now auto-instruments browser History API (#140)
  • Tracker now typed in TypeScript, tested with Playwright, and built with Vite (#132)
  • Project is now built, deployed, etc. using Turborepo (#132)
v2.3.0
benvinegarbenvinegar·1y ago·December 20, 2024
GitHub

📋 Changes

  • Upgrades Remix to 2.15.1 and opts into all `future` flags (#130)
  • Updates dependencies to remove high-sev vulnerabilities reported by `npm audit` (#131)
v2.2.2
benvinegarbenvinegar·1y ago·December 19, 2024
GitHub

📋 Changes

  • Fixes broken Admin URL in navbar (#129)
v2.2.1
benvinegarbenvinegar·1y ago·December 14, 2024
GitHub

📋 Changes

  • Fixed crash caused by bad SQL query when no results during a given period (#126)
v2.2.0
benvinegarbenvinegar·1y ago·December 13, 2024
GitHub

📋 Changes

  • Now collects and reports on Bounce Rate (#116)
  • Time series chart now renders 3 time series: visitors, views, and bounce rate. (#124)
  • Improved time series chart visuals including hover tooltip (#125)
  • Fixes bug where pagination on Path and Referrer cards where pagination wasn't functioning correctly. (#123)
  • Fixed bug where `tailwind.config.js` would not resolve modules in newer versions of Node (53d58356288cc70674d2057053f6c38883c837ad)
v2.1.0
benvinegarbenvinegar·1y ago·November 21, 2024
GitHub

📋 Changes

  • Now supports "Yesterday" time range (#98)
  • Clearer error messages when CF_ACCOUNT_ID or CF_BEARER_TOKEN is not configured (#113)
  • Fixed bugs caused by inaccurate server-detected timezone (#109, #107)
  • Fixed bug where recent DST switchover caused inaccurate timeseries graph (#108)
v2.0.0
benvinegarbenvinegar·1y ago·September 7, 2024
GitHub

📋 Changes

  • Now uses Remix + Vite (https://github.com/benvinegar/counterscale/pull/81)
  • Now deploys to Cloudflare Pages (instead of Cloudflare Workers) (https://github.com/benvinegar/counterscale/pull/81)
  • One-click filters (https://github.com/benvinegar/counterscale/pull/87)
  • More condensed UI (https://github.com/benvinegar/counterscale/pull/89)
v2.0.0-beta.3
benvinegarbenvinegar·1y ago·August 9, 2024
GitHub

📋 Changes

  • Now uses Remix + Vite (#81)
  • Now deploys to Cloudflare Pages (instead of Cloudflare Workers) (#81)
  • One-click filters (#87)
  • More condensed UI (#89)
v1.0.0
benvinegarbenvinegar·2y ago·June 26, 2024
GitHub