No Cookies
Databuddy operates completely cookie-free. Instead of using cookies to track users across sessions, we use:- LocalStorage for anonymous IDs (stored as
did) - SessionStorage for session IDs (stored as
did_session) - URL parameters for cross-domain tracking (optional)
Anonymous IDs
Every visitor gets a randomly generated anonymous ID in the formatanon_[uuid]. This ID:
- Is generated client-side using UUIDv4
- Contains no personal information
- Cannot be used to identify individuals
- Persists in localStorage for consistent tracking across page views
- Can be cleared by the user at any time
IP Anonymization
While Databuddy collects IP addresses for geolocation (country, region, city), the IP itself is:- Never stored in raw form in ClickHouse analytics tables
- Used only for geo-enrichment at ingestion time
- Hashed or discarded after processing
- Not available in exports or API responses
User Opt-Out
Users can opt out of tracking at any time using the global opt-out functions:- The flag
databuddy_opt_outis set totruein localStorage - All tracking stops immediately
- No events are sent to the server
- The user’s preference persists across sessions
Bot Detection
Databuddy automatically detects and filters bot traffic to keep your analytics clean:- Filtered out by default
- Can be logged separately for debugging
- Configurable via
ignoreBotDetectionoption
Data Ownership
With Databuddy, you maintain complete ownership of your data:- All data is stored in your infrastructure (self-hosted) or in isolated databases (cloud)
- You can export your data at any time
- You control retention periods
- You decide when to delete data
GDPR Compliance
Databuddy is designed to be GDPR-compliant out of the box:No PII Collection
No PII Collection
We don’t collect emails, names, phone numbers, or any personally identifiable information by default. Anonymous IDs cannot be traced back to individuals.
No Cross-Site Tracking
No Cross-Site Tracking
Databuddy doesn’t track users across different websites. Each website gets its own isolated data with unique client IDs.
Data Minimization
Data Minimization
We only collect what’s necessary for analytics: page views, events, and aggregated performance metrics. No unnecessary tracking.
Right to Erasure
Right to Erasure
Users can clear their anonymous ID and session data anytime by clearing localStorage or using the opt-out function.
Data Portability
Data Portability
Export your analytics data in standard formats (JSON, CSV) via the API or dashboard.
Sampling
Reduce data collection even further with built-in sampling:Path Masking
Protect sensitive URLs with path masking:packages/tracker/src/core/tracker.ts:250-277, the masking logic replaces dynamic segments:
/users/123becomes/users/*/orders/456/items/789becomes/orders/*
Skip Patterns
Exclude specific pages from tracking entirely:Localhost Filtering
By default, Databuddy doesn’t track on localhost to avoid polluting your production analytics with development traffic:Privacy-First Architecture
Databuddy’s architecture is designed with privacy in mind:- Client-side anonymization: Anonymous IDs generated in the browser
- No third-party cookies: All storage is first-party only
- Minimal data transmission: Only essential metrics are sent
- Server-side enrichment: Geo and UA parsing happens after ingestion
- Separation of concerns: PII-free analytics data in ClickHouse, metadata in PostgreSQL
Best Practices
Enable Batching
Reduce network requests by enabling batching:
Use Sampling
For high-traffic sites, sample your data:
Mask Sensitive Paths
Protect user-specific URLs:
Provide Opt-Out
Add a clear opt-out link in your privacy policy:
Learn More
Event Tracking
Understand how events are collected and batched
Sessions & Users
Learn about session management and user identification
Data Model
Explore how data is structured in ClickHouse and PostgreSQL