opuskiln-analytics
v1.0.0
Published
Minimal first-party web analytics for SPAs (no cookies, DPDP-friendly). Pageviews, custom events, and JS/API error capture.
Maintainers
Readme
opuskiln-analytics
Minimal, cookie-free page and event analytics for single-page apps. Events are sent to your collector (for example a Supabase Edge Function in India).
Install
npm install opuskiln-analyticsUsage
import { init, trackPageview, track } from "opuskiln-analytics";
init({
endpoint: "https://YOUR_PROJECT.supabase.co/functions/v1/analytics-collect",
websiteId: "your_site_public_key",
apiKey: "your_supabase_anon_key", // Supabase gateway only; not stored server-side as identity
respectDnt: true,
spa: true,
});
trackPageview();
track("signup_clicked", { section: "hero" });API
init(options)— required before trackingtrackPageview({ path?, title?, referrer? })track(eventName, props?)installGlobalErrorHandlers()—windowerror + unhandledrejection →js_errortrackJsError({ type, message, source?, stack? })— for React error boundariestrackApiError({ status?, path?, code?, message? })— unexpected HTTP failurescreateAnalyticsFetch(baseFetch?)— wrapfetch(e.g. Supabaseglobal.fetch) to emitapi_error
Error events are deduped (same fingerprint once per ~30s) and capped per session. Strings are truncated; script URLs use basename only; API paths drop query strings.
No cookies. Does not send emails, names, or auth tokens. Optional coarse timezone and screen are attached only when enabled (default on).
License
MIT
