{% extends "base.html" %} {% block title %}Real User Monitoring{% endblock %} {% block content %} {% from '_limit.html' import limit as plan_limit, paused, locked %} {{ plan_limit(totals.sites, limit, 'RUM sites') }}

Real User Monitoring

Core Web Vitals, page views, JS errors and slow resources from your real visitors. One 8 KB snippet, no cookies. {{ totals.sites }}/{{ limit }} site{{ 's' if limit != 1 }} on {{ plan.name }} · {{ plan.retention_days }}-day history.

{% if user.can_edit %}{% endif %}
Leave origins empty to accept beacons from any page carrying your token. Sampling is per session; 100% is fine for most sites.
Sites
{{ totals.sites }}
Page views · 24h
{{ totals.views }}
Sessions · 24h
{{ totals.sessions }}
JS errors · 24h
{{ totals.errors }}
{% if not sites %}

No sites yet

Add a site, paste one script tag into your pages, and Core Web Vitals, page views and JavaScript errors from real visitors start showing within minutes. Works with any framework or static host.

{% else %}
{% for s in sites %}{% set st = stats[s.id] %}
{% if s.last_seen_at %}{% else %}{% endif %}{{ s.name }} {{ paused(s.paused_by_plan, 'sites') }}
{% if s.origins %}{{ s.origins|join(', ') }}{% else %}any origin{% endif %} · sample {{ s.sample_rate }}%
{% if st.errors %}{{ st.errors }} errors{% endif %}
{% if not s.last_seen_at %}
Waiting for the first page view. Open the site for the snippet.
{% else %}
Views · 24h
{{ st.views }}
Sessions
{{ st.sessions }}
LCP p75
{{ st.lcp_fmt }}
{% if st.share.total %}
good {{ st.share.good_pct }}% needs work {{ st.share.needs_pct }}% poor {{ st.share.poor_pct }}%{{ s.last_seen_at|timeago }}
{% endif %} {% endif %}
{% endfor %}
{% endif %} {% endblock %}