Compare
Two takes on analytics in the AI era. Rybbit is the closest thing to us in spirit: open source, cookieless, EU-hosted, and one of the few tools that already treats AI agents as first-class users via an MCP server. We are aiming at the same era from a different angle.
| Capability | Rybbit | Vitrus |
|---|---|---|
| Cookie-free, no consent banner | ✓ | ✓ |
| Self-hostable | ✓ | ✓ |
| MCP server for AI agents | read + write | read-only, evidence attached |
| Evidence returned to the agent | — | ✓ |
| Core Web Vitals | ✓ | ✓ |
| JavaScript error tracking | ✓ | ✓ |
| Ordered funnels | ✓ | ✓ |
| Session replay | ✓ | — |
| Heatmaps | ✓ | — |
| User profiles | ✓ | — |
| User journeys / path analysis | ✓ | — |
| Named goals with targets | ✓ | funnels and custom events |
| City-level geography and maps | ✓ | country only, from your proxy |
| Tracker size (gzipped) | ~18 KB | 2.4 KB |
| AI referral ↔ AI crawler split | — | ✓ |
| Unprovable AI sentences auto-dropped | — | ✓ |
| Per-site strict privacy mode | — | ✓ |
Features we don't have are shown as “—”. A comparison that hides its own gaps would contradict the one thing this product claims.
Rybbit is broader today. Session replay, heatmaps, user profiles, error tracking, autocapture and a large integration catalogue are all shipping, and their MCP server can create goals and manage resources — ours is deliberately read-only. If you want one tool that both watches and acts, they are further along.
When you need the agent's answer to be checkable. Our MCP returns the SQL, the parameters and the raw rows with every metric, so an agent can cite evidence instead of asserting a number — and a human can audit what the agent said afterwards.
Theirs can act — create goals, manage resources. Ours cannot, on purpose: analytics is a system of record, and a record a model can write to stops being a record. What ours does instead is return the query behind every number, so the agent's claim is verifiable.
Because the failure mode is asymmetric. A wrong read produces a wrong sentence you can catch. A wrong write silently corrupts the history you are measuring against, and you may not notice for months.
It matters if you care about Core Web Vitals, and less otherwise. Most of their weight is session replay, which we do not ship at all — so this is not really a comparison of efficiency, it is the same trade-off stated in bytes. You are choosing between recording sessions and a script that barely registers.
Because a GeoIP database is a 60 MB file with a monthly update cycle, and bundling one would end the claim that installing Vitrus is a single command with nothing else to run. We read the country header your proxy already sets, and when there is no proxy we say the data is missing rather than guessing from the IP.
Other comparisons: