Witnes vs Umami
Two cookieless, privacy-focused analytics platforms. Umami is a developer favourite built on simplicity. Here's an honest look at what each one does well.
Overview
Simple by design vs. depth by design
Umami is one of the most respected tools in the open-source analytics space. MIT-licensed, free to self-host, and built around a clean and minimal interface, it's the go-to choice for developers who want a Google Analytics replacement without the complexity. Version 3.1 added session replay, Core Web Vitals tracking, and custom dashboards ("Boards"), showing that the project is maturing fast.
Witnes takes a different starting point: rather than a minimal traffic counter that grows, it was designed from the beginning around the question of experience quality. That means going beyond page load metrics into animation smoothness, perceived idle time, and a per-visit sentiment score — as well as a first-class concept of the organisation a visitor belongs to, which matters a lot for B2B SaaS products.
Feature comparison
| Feature | Witnes | Umami |
|---|---|---|
| Analytics & Traffic | ||
| Pageviews & session tracking | ✓ | ✓ |
| Unique visitor counting | ✓ | ✓ |
| Bounce rate & session duration | ✓ | ✓ |
| Real-time dashboard | ✓ | ✓ |
| Geo analytics (country, region) | ✓ | ✓ |
| UTM & referrer tracking | ✓ | ✓ |
| Entry & exit pages | ✓ | ✓ |
| Performance Monitoring | ||
| Core Web Vitals (LCP, FCP, CLS) | ✓ | ✓ v3.1 |
| INP (Interaction to Next Paint) | ✓ | ✓ v3.1 |
| Request-to-idle timing | ✓ | — |
| Animation jank tracking | ✓ | — |
| Per-session performance breakdown | ✓ | — |
| User Intelligence | ||
| Custom events | ✓ | ✓ |
| User identification (identify()) | ✓ | ✓ |
| Per-organisation analytics (B2B orgId) | ✓ | — |
| Visitor session detail | ✓ | ✓ |
| Session replay (video) | — | ✓ v3.1 |
| Conversion funnels | — | ✓ |
| Custom dashboards | — | ✓ v3.1 |
| A/B testing & feature flags | — | — |
| Experience Signals | ||
| Sentiment score per visit | ✓ | — |
| Bad experience detection (frontend / network / backend) | ✓ | — |
| Privacy & Compliance | ||
| Cookieless tracking | ✓ | ✓ |
| No consent banner required | ✓ | ✓ |
| GDPR compliant | ✓ | ✓ |
| EU data residency | ✓ | Self-host only |
| Platform | ||
| JavaScript tracker (<5KB) | ✓ | ✓ |
| Error tracking | ✓ | — |
| Revenue tracking | — | ✓ |
| Self-hostable | — | ✓ |
| Open source | — | ✓ |
| Team collaboration | ✓ | ✓ |
| API access | ✓ | ✓ |
— means not currently available. Information based on publicly available documentation.
Where Witnes shines
Traffic data is a start. Experience data is the point.
Umami tells you who showed up. Witnes tells you what they went through — and which of your customers it was.
Performance signals Umami doesn't track
Umami added Core Web Vitals in v3.1 — a solid baseline. Witnes goes further: how long until the page was truly idle, how many animation frames dropped, and whether content settled smoothly. These signals are what matter for SPAs where the browser's load event fires before the page is actually ready.
Sentiment Score — one signal across all dimensions
Instead of checking metrics one by one, Witnes gives every visit an automatic experience classification: good, neutral, or degraded. It combines performance, frontend errors, and network conditions into a single signal. Track sentiment trends over time without building your own logic.
B2B analytics: analytics by customer, not by visitor
Umami's identify() ties sessions to individual users. Witnes adds a first-class
orgId layer so you can filter every metric — sentiment, performance,
errors — by the customer organisation. Which accounts are
struggling this week? Which plan tier has the worst
experience scores? Umami can't answer those questions.
Get started
Traffic numbers tell you who visited. Witnes tells you what they felt.
Sentiment scores, jank detection, request-to-idle timing, and B2B org analytics — the layer between "someone visited" and "someone had a great experience."