benvinegar/counterscale
Scalable web analytics you run yourself on Cloudflare
**Full Changelog**: https://github.com/benvinegar/counterscale/compare/v3.4.0...v3.4.1
📋 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
📋 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).
📋 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).
📋 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).
📋 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).
📋 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.
📋 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.
📋 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.
📋 Changes
- Fix Counterscale version not rendering in dashboard footer (#176)
📋 Changes
- Fix bug where country was not being collected (#172)
- Upgrade to ESLint 9 + add config package `packages/eslint-config` (#171)
📋 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.
📋 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._
📋 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)
📋 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_
📋 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)
📋 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)
📋 Changes
- Fixes broken Admin URL in navbar (#129)
📋 Changes
- Fixed crash caused by bad SQL query when no results during a given period (#126)
📋 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)
📋 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)
📋 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)
📋 Changes
- Now uses Remix + Vite (#81)
- Now deploys to Cloudflare Pages (instead of Cloudflare Workers) (#81)
- One-click filters (#87)
- More condensed UI (#89)
