Google Analytics is free because you are the product. Your visitors' browsing data feeds Google's advertising machine, and in return you get a dashboard that requires a certification course to navigate. We needed analytics for the AccelaStudy(R) family of websites that respected visitor privacy, required no cookie consent banners, and gave us the metrics that actually matter. Pulse is what we built.
Pulse is a privacy-first web analytics and event tracking platform. It uses zero cookies, complies with GDPR by default, and delivers its entire tracking script in under 2 KB. It tracks pageviews, sessions, and visitors using daily-rotating hashes instead of persistent identifiers. No personal data is collected, no consent banners are required, and no data leaves our infrastructure.
How It Works Without Cookies
Traditional analytics platforms assign each visitor a persistent cookie that follows them across sessions, pages, and often across websites entirely. This is what triggers GDPR consent requirements and what enables the cross-site tracking that privacy-conscious users rightly object to.
Pulse takes a different approach. Visitor identification uses daily-rotating hashes derived from the visitor's IP address and user agent string. The hash changes every day, so there is no way to track a visitor across sessions separated by more than 24 hours. The raw IP address is never stored. This gives us accurate daily unique visitor counts and session tracking without collecting any personally identifiable information.
The tracking script itself, served from t.renkara.com, weighs under 2 KB. Compare that to Google Analytics at roughly 45 KB or Segment at over 70 KB. The performance impact on page load is effectively zero.
Key Features
Real-Time Dashboard
Pulse provides a live visitor count and activity stream with a 5-second refresh. The main dashboard shows metrics, time-series charts, and dimension breakdowns covering pages, traffic sources, campaigns, geographic locations, devices, and languages. It shows what is happening on your sites right now, not what happened 24 hours ago after a batch processing job finished.
Custom Events
Beyond pageviews, Pulse tracks custom events through three interfaces: a JavaScript API for programmatic tracking, HTML data attributes for declarative tracking without writing code, and a server-side API for events that originate from your backend. Webhook ingestion handles inbound events from Stripe, SendGrid, Google Ads, and Meta, so conversion data from external platforms flows into the same dashboard as your on-site analytics.
Goals and Conversion Tracking
Define goals based on pageviews or custom events, with optional revenue tracking. Pulse measures conversion rates against your goals and shows which traffic sources and pages drive the most valuable outcomes. Multi-step funnel analysis tracks conversion through configurable stages with drop-off visualization at each step, so you can see exactly where visitors abandon the process.
A/B Testing
Pulse includes a built-in A/B testing framework with variant assignment, statistical significance calculation, and automatic winner detection. Run experiments on any page or feature, split traffic between variants, and let the platform tell you when the results are conclusive. No third-party testing tools required.
Attribution
Three attribution models are available out of the box: last-touch, first-touch, and linear. Attribution ties conversions back to the traffic sources and campaigns that drove them, giving you a clear picture of which marketing channels produce results and which ones burn budget.
Retention and Cohorts
Cohort analysis shows how visitor engagement evolves over time. Return frequency metrics reveal whether your content drives repeat visits or one-time traffic. Milestones let you annotate the timeline with named events, so you can correlate product launches, blog posts, or marketing pushes with changes in your traffic patterns.
Integration Points
Pulse authenticates through the shared AVIAN auth-service using RS256 JWTs. The tracking endpoint runs at t.renkara.com, separate from the dashboard at pulse.renkara.com and the API at pulse-api.renkara.com. Data lives in a dedicated pulse database on the shared PostgreSQL instance, with all tables namespaced under the pulse schema. Valkey handles caching with a pulse: key prefix.
Teams support covers owner, admin, and viewer roles, with the option to make dashboards public. Saved reports can be scheduled for email delivery or exported as CSV. Everything that the dashboard can do is also available through the REST API.
Why Not Plausible, Fathom, or Umami?
The privacy-first analytics space has several good options. Plausible and Fathom are excellent products. But they are SaaS platforms with monthly fees that scale with pageview volume, and they do not include A/B testing, funnel analysis, or webhook ingestion from payment and ad platforms. Umami is open source, but self-hosting it means running a separate infrastructure stack just for analytics.
Pulse runs on the same FastAPI, PostgreSQL, and Valkey infrastructure we already operate for every other internal tool. There is no additional infrastructure to maintain. It includes A/B testing, multi-step funnels, attribution modeling, cohort analysis, and webhook ingestion from Stripe, SendGrid, Google Ads, and Meta. The total cost is compute and storage we are already paying for.
Specs
| Component | Detail |
|---|---|
| Backend | Python 3.12+, FastAPI, SQLAlchemy 2.0 async, PostgreSQL, Valkey |
| Frontend | React 19, TypeScript, Vite, CSS Modules |
| Tracking Script | <2 KB, zero cookies, served from t.renkara.com |
| Privacy | Zero cookies, daily-rotating hashes, no PII stored, GDPR compliant |
| Auth | RS256 JWT via shared auth-service |
| A/B Testing | Built-in variant assignment, significance calculation, winner detection |
| Attribution | Last-touch, first-touch, linear models |
| Webhooks | Stripe, SendGrid, Google Ads, Meta |
| Ports | Frontend 3421, Backend 3422 |