View other Customer Stories

How Phare Built Privacy-First Product Analytics With Vemetric

"I'm super happy with the dashboard and don't care that I can't customize it, everything I need is already shown."
Avatar of Nicolas

Nicolas

Founder


Phare is a European website reliability platform founded by Nicolas Beauvais. It gives teams the tools they need to monitor uptime and certificates, manage incidents, and keep customers informed with status pages.

Privacy has been part of Phare from the start. Users only need an email address to create an account, and the platform avoids collecting data that is not essential. When it was time to revisit the analytics stack, the same principles needed to apply there too.

Screenshot of the Phare landing page
Screenshot of the Phare landing page

The Challenge: Analytics Had Become Heavier Than the Questions

Phare started using PostHog in 2022. Its EU data residency and generous free tier made it a sensible choice for a young product, but over time the platform grew more sophisticated than Phare’s analytics needs.

Maintaining custom dashboards just to find a few important metrics was not worth the overhead. Phare needed a focused view of product adoption and retention without the time spent navigating or configuring a larger analytics suite.

At the same time, Phare was moving away from non-European third-party services and looking to support other independent European developers where possible. Vemetric, built in Austria by a fellow solo founder, matched both the technical requirements and the values behind the product.

The Solution: Lightweight Analytics on a European Stack

A standard Vemetric integration takes only a few minutes. Phare went further, routing its analytics traffic through a dedicated Bunny.net pull zone to apply extra privacy controls at the European edge before requests reached Vemetric.

The result is a deliberately lean setup: Vemetric provides the website and product analytics, while Bunny.net handles the additional edge processing Phare wanted. The dashboard stays ready to use without requiring a custom reporting layer to be built and maintained.

Phare's Vemetric dashboard
Phare's Vemetric dashboard

Measuring Organizations, Not People

Phare is a B2B product built around organizations, so individual user tracking would add personal data without answering the questions that matter. Each organization’s ID is used as the common identifier for analytics instead.

Before that ID leaves Phare’s servers, it is anonymized with HMAC-SHA256 and a secret salt. Vemetric receives no customer names, email addresses, or internal user IDs. Team changes do not fragment the data either: if someone joins or leaves an organization, product usage and retention remain connected to the account rather than the individual.

We plan on providing proper organization tracking in the future, but Phare’s approach already shows how to use Vemetric’s existing features to measure adoption across whole organizations instead of individual users.

Anonymizing IP Addresses at the Edge

Phare also prevents raw client IP addresses from reaching Vemetric. Its Bunny.net pull zone strips cookies, processes traffic only in EU regions, and runs middleware that anonymizes IP addresses before forwarding a request.

For IPv4 addresses, the final octet is removed. IPv6 addresses are truncated to their /64 prefix. That preserves useful country- and city-level reporting while ensuring Vemetric’s servers never receive the original client IP.

This architecture lets Phare retain the geographic context needed to operate a global uptime monitoring platform without turning analytics into a source of personal data.

Keeping IDs and Tokens Out of Pageviews

Dynamic application URLs can accidentally expose private information. A monitor-edit page may contain an internal record ID, while an invitation or password-reset link may include a sensitive token.

Phare uses Vemetric’s maskPaths configuration to normalize those URLs before they are tracked. A path such as /uptime/monitors/9482 becomes /uptime/monitors/* in the dashboard.

That protects sensitive values and keeps reporting useful by grouping thousands of unique dynamic URLs into a small set of meaningful product areas.

Connecting Pageviews With Product Events

Frontend analytics show which parts of Phare people visit, but Nicolas also wanted to understand whether organizations reach important product milestones. Phare therefore sends Custom Events from queued backend jobs when an organization creates an uptime monitor, resolves an incident, or publishes a status page.

These events use the same anonymized organization identifier as the frontend script. Vemetric can connect pageviews and server-side actions into coherent User Journeys and Funnels, even when an action comes through Phare’s API rather than the browser.

Product events from Phare in the Vemetric dashboard
Product events from Phare in the Vemetric dashboard

The Impact: Useful Analytics Without the Overhead

With Vemetric, Phare replaced a broad analytics suite with a focused stack that fits the product’s current stage. Phare gets the metrics it needs without maintaining custom dashboards, keeps analytics data in Europe, and has a setup designed around organizations instead of people.

The switch also removed roughly 200 KB of JavaScript from Phare’s frontend. More importantly, it gave the product a practical way to measure adoption, retention, and critical workflows without compromising its privacy standards.

For Phare, the best analytics setup is not the one with the most options. It is the one that answers the right questions, stays out of the way, and handles customer data with the same care as the product itself.

Nicolas also published a technical deep dive into Phare’s Vemetric and Bunny.net setup.

Phare Logo

Phare

phare.io

Industry

Uptime Monitoring Platform

Location

Estonia

Company Size

1 person

Vemetric Plan

250k Events per month

Ready to understand your users?

Start tracking
Ready to understand your users?

Integrate and get valuable insights with Vemetric in minutes.

Start tracking
Pricing About Documentation Customers Changelog Blog