Open-source visitor intelligence with browser fingerprinting, behavioral analytics, frustration scoring, and real-time insights. One lightweight script. Zero cookies.
npm install @stevandric/identity-js
From basic analytics to behavioral intelligence — all in one self-hosted package
Canvas, WebGL, audio, fonts, speech voices, math quirks — over 40 signals combined into a stable fingerprint that identifies returning visitors across sessions without cookies.
Multi-signal bot scoring analyzes headless browser markers, automation APIs, and behavioral patterns to flag bots, crawlers, and scrapers in real time.
Weighted composite of rage clicks, dead clicks, errors, form abandons, and rapid navigation. See exactly who's struggling and where.
Detects clicks on elements that look interactive but aren't — underlined text, pointer cursors, icon-like images. Shows where users expect interactivity.
Scroll velocity analysis classifies visitors as reading, skimming, or scanning per page. Tracks attention percentage and active vs. idle time.
Measures time from field focus to first keystroke, tracks delete counts and retypes per form field. Find the fields causing friction.
Detect rapid frustrated clicking and clicks on non-interactive elements. Aggregated into hotspot reports showing exactly which elements cause confusion.
Track what text visitors copy from your site — content, length, and source page. Understand what information people take away.
Know exactly which form field users stopped at, which fields they touched, and on which page. Fix your forms with data.
Interactive Leaflet map showing visitor locations, live visitor tracking with auto-refresh, full Insights tab with aggregated analytics across all visitors, and per-visitor deep dives with sub-tabs for Overview, Journey, Behavior, and Signals.
Track any user action with IdentityJS.track(). See aggregated event rankings with property breakdowns in the Insights tab.
Drop in the script, call init, and you're collecting 40+ signals with 11 advanced behavioral trackers — automatically.
import IdentityJS from '@stevandric/identity-js' // Initialize — just your API key, that's it! const identity = await IdentityJS.init({ apiKey: 'pk_live_your-project-api-key', }) // Track custom events anywhere IdentityJS.track('signup_clicked', { plan: 'pro', source: 'hero-cta' }) // Access visitor info console.log(identity.visitorId) console.log(identity.fingerprintHash)
npm install and import. One dependency, 29KB gzipped. Works with any bundler or as a UMD script tag.
One-click deploy to Railway, or self-host anywhere with Node.js 22+. SQLite storage, zero external dependencies.
Open the dashboard. See visitors in real time, explore behavioral data, track frustration scores, and discover UX issues.
Features that usually cost $100+/month, in a free open-source package
| Feature | identity·js | Google Analytics | Hotjar | FullStory |
|---|---|---|---|---|
| Browser Fingerprinting | ✓ 40+ signals | ✗ | ✗ | ✗ |
| Cookie-free Tracking | ✓ | ✗ | ✗ | ✗ |
| Bot Detection | ✓ Built-in | Limited | ✗ | ✗ |
| Frustration Score | ✓ | ✗ | ✗ | ✓ Premium |
| Phantom Clicks | ✓ | ✗ | ✗ | ✗ |
| Reading Behavior | ✓ | ✗ | Limited | ✗ |
| Input Hesitation | ✓ | ✗ | ✗ | ✗ |
| Rage Clicks | ✓ | ✗ | ✓ | ✓ |
| Form Abandonment | ✓ | ✗ | ✓ | ✓ |
| Custom Events | ✓ | ✓ | ✗ | ✓ |
| Self-hosted | ✓ | ✗ | ✗ | ✗ |
| Open Source | ✓ | ✗ | ✗ | ✗ |
| Price | Free | Free* | $32+/mo | $108+/mo |
Start tracking in under 5 minutes. No credit card. No cookies. No third-party data sharing.