Skip to main content

Unified Tracking

One TypeScript API for analytics and error tracking across React, web, and Capacitor. Configure once, and the same calls reach every provider you enable — consent-aware and privacy-minimizing by design.

Google AnalyticsFirebaseAmplitudeMixpanelSegmentPostHogHeapMatomoSentryCrashlyticsDataDogBugsnagRollbarLogRocketRaygunAppCenter

One API, sixteen providers

Call track, identify, logError, logRevenue, and logScreenView once. The core fans each call out to every provider you enable — swap or add SDKs without touching call sites.

Consent gate built in

setConsent denies a category and the engine drops the matching events before any provider sees them. analytics and errorTracking gate dispatch; the rest forward to provider-native consent APIs.

Privacy minimization

settings.privacy.excludedProperties strips listed keys from every event, trait, and context before providers receive them. Secrets and DSNs are redacted from logs.

React without providers

Import useUnifiedTracking and useTrackEvent from unified-tracking/react. No context, no HOC, no <Provider> wrapper — the hooks bind to a shared singleton with stable identity.

Capacitor-ready

registerCapacitorPlugin() wires the same core into a Capacitor WebPlugin so the plugin, the React hooks, and the main entry all share one instance and one init state.

Typed, tree-shakeable, zero runtime deps

Ships as ESM with full .d.ts types and three subpath exports (., /react, /capacitor). The package itself pulls in no runtime dependencies — provider SDKs load only when configured.