@keylightdigital/beam
v1.0.0
Published
Privacy-first web analytics tracking script — cookie-free, GDPR-friendly, lightweight (<2KB)
Maintainers
Readme
██████ ███████ █████ ███ ███
██ ██ ██ ██ ██ ████ ████
██████ █████ ███████ ██ ████ ██
██ ██ ██ ██ ██ ██ ██ ██
██████ ███████ ██ ██ ██ ██@keylightdigital/beam
Privacy-first, cookie-free web analytics tracking script for Beam by Keylight Digital LLC.
Live Demo
- Try the product: https://beam-privacy.com/demo
- See API docs: https://beam-privacy.com/docs/api

Why This Script
- 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
Script Size Comparison
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 |
Installation
Option 1: Script Tag (recommended)
<script defer src="https://beam-privacy.com/js/beam.js" data-site-id="YOUR_SITE_ID"></script>Option 2: npm
npm install @keylightdigital/beam<!-- 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).
Technical Article
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).
Install Examples
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
Quick Start
- 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.
Custom Event Tracking
window.beam.track('purchase', { product: 'Pro Plan', value: 5 })
window.beam.track('newsletter_signup')TypeScript Support
This package ships with index.d.ts.
window.beam.track('upgrade', { from: 'free', to: 'pro' })Documentation
- 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
Contributing
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
License
MIT
