██████ ███████ █████ ███ ███
██ ██ ██ ██ ██ ████ ████
██████ █████ ███████ ██ ████ ██
██ ██ ██ ██ ██ ██ ██ ██
██████ ███████ ██ ██ ██ ██
Privacy-first, cookie-free web analytics tracking script for Beam by Keylight Digital LLC.
- Try the product: https://beam-privacy.com/demo
- See API docs: https://beam-privacy.com/docs/api
- Tiny payload:
beam.jsis currently1592bytes raw in this repo - No cookies, no localStorage, no fingerprinting
- GDPR-friendly event and pageview tracking
- Works with static sites, SPAs, and server frameworks
Measured as uncompressed response size (bytes) on 2026-04-03.
| Tool | Script Size |
|---|---|
Beam (beam.js) |
1,592 B |
Plausible (/js/script.js) |
3,005 B |
Fathom (/script.js) |
6,905 B |
Umami Cloud (/script.js) |
4,584 B |
<script defer src="https://beam-privacy.com/js/beam.js" data-site-id="YOUR_SITE_ID"></script>npm install beam-analytics<!-- Serve beam.js from node_modules or your copied public asset path -->
<script defer src="/vendor/beam.js" data-site-id="YOUR_SITE_ID"></script>The npm package provides the script file (beam.js) and type declarations (index.d.ts).
Building privacy-first web analytics on Cloudflare Workers and D1
An in-depth look at how Beam works under the hood: the Cloudflare Workers + D1 architecture, the cookie-free daily hashing approach for unique visitor counting, and the sub-2KB tracking script design. Also available on Beam's blog and Dev.to (paste from devto-article.md).
GitHub-indexable install examples:
Canonical Beam guides:
- https://beam-privacy.com/for/nextjs
- https://beam-privacy.com/for/astro
- https://beam-privacy.com/for/shopify
- https://beam-privacy.com/for/wordpress
- https://beam-privacy.com/wordpress-plugin
- https://beam-privacy.com/for/webflow
- Create a site in the Beam dashboard and copy your
site_id. - Add the script tag to your site.
- Open your site once to generate a pageview.
- Check analytics in your dashboard.
window.beam.track('purchase', { product: 'Pro Plan', value: 5 })
window.beam.track('newsletter_signup')This package ships with index.d.ts.
window.beam.track('upgrade', { from: 'free', to: 'pro' })- Product and signup: https://beam-privacy.com
- Live demo: https://beam-privacy.com/demo
- API docs: https://beam-privacy.com/docs/api
- Source repo: https://github.com/scobb/beam.js
Contributions are welcome. Before opening a PR:
- Read CONTRIBUTING.md
- Use the bug template: New bug report
- Keep changes focused on the public script package and docs
MIT
