Real user monitoring for every page load
Atatus measures every page load in your users' browsers: Core Web Vitals, load time from P50 to P99, AJAX calls and JavaScript errors, by page, browser and country.

Core Web Vitals, page by page.
LCP, INP, CLS, FCP and TTFB from real visitors. Pick a vital to see how many page views were good.
- 2,534good
- 2,348needs improvement
- 1,298poor
Decide what fast means. Score it.
Set the threshold T and every page view becomes satisfied, tolerated or frustrated.
Drag T along the chart, or focus it and use the arrow keys.
- Satisfied≤ 1.00 s39620%
- Tolerated≤ 4.0 s1,45974%
- Frustrated> 4.0 s1045%
(396 + 1,459 / 2) / 1,959
T is set per project in Project settings.
The median hides the slow tail.
Switch from P50 to P99 and watch where the extra seconds go.
- Network1.90 s
- DOM processing2.60 s
- Page rendering1.10 s
Network 1.90 s From navigation start, DNS included, to the first byte from your server.
Front end 3.70 s DOM processing plus page rendering, spent in the browser.
- GET/api/cart180 ms200
- POST/api/coupon1.4 s200
- POST/api/pay320 ms500
Sample data
One snippet. Your options.
Install from npm, then switch on what you need. The code updates as you go.
1$ npm install --save atatus-spa 2 3import * as atatus from 'atatus-spa'; 4 5atatus.config('YOUR_API_KEY').install(); 6 7atatus.setUser('u_8812', 'dev@example.com', 'Dev Team'); 8atatus.setVersion('2.14.0');
Real User Monitoring, screen by screen.
Real screens from the Atatus app.

Questions Engineers Ask Before Buying
Pricing, deployment, data and the agent. If something is missing, a person will answer it on a demo call.
Real User Monitoring (RUM) is a performance monitoring technique that collects data directly from actual users' browsers as they interact with your application. Unlike synthetic monitoring which simulates traffic from a controlled lab. RUM captures real-world variability: different devices, network speeds, browser versions, and geographic locations. You need RUM because lab scores don't predict real user experience. A site that scores 95 on Lighthouse can still frustrate real users on mobile in emerging markets. RUM bridges the gap, giving you actionable field data that directly impacts Core Web Vitals, SEO rankings, and business conversion rates.
Atatus RUM covers what most teams need from RUM: Core Web Vitals, page load time, AJAX calls, JavaScript errors and session traces. The differences are in setup and in the platform around it. You install it with one script snippet or the atatus-spa npm package, RUM sits in the same account as APM, logs and infrastructure monitoring, and pricing has no per-user fees.
Yes. Atatus tracks LCP, INP and CLS from real page views, along with FCP, TTFB and FID. Each vital shows its Good, Needs Improvement and Poor split, and the Web Vitals view charts the average, P50, P75 and P90. Google's targets are an LCP of 2.5 s or less, an INP of 200 ms or less and a CLS of 0.1 or less. You can filter vitals by page URL and set alerts on LCP, FCP, CLS, TTFB and FID.
Yes. The atatus-spa script monitors route changes in single-page apps, and the hashRoutes option keeps hash-based routes apart. There are setup guides for React, Angular, AngularJS, Vue, Ember, Backbone, Meteor, Ionic and plain JavaScript. Upload your source maps, or point to them from your minified files, and stack traces show your original file names and line numbers.
Each page view carries its load time split into network, DOM processing and page rendering, its Core Web Vitals, its AJAX calls, and a session trace with every static asset and API call on a timeline. Each JavaScript error carries its stack trace, the page URL, browser, OS, device, connection and country, and the user actions that led up to it as breadcrumbs. You can add a user ID, email and name with setUser, and attach custom data and tags such as plan or app version.
Atatus is SOC 2 Type 2 audited, ISO 27001:2022 certified and supports GDPR. By default it collects no user-specific information except the visitor's IP address, which you can anonymize in project settings. User details are only sent if you add them with setUser. Data is encrypted in transit and at rest, and stays in the region where it was collected. For session replay, sensitive inputs such as passwords and card numbers are masked.
There is no sampling by default: every page view that loads the agent is reported. If you want to sample a very busy site, load the Atatus snippet for only part of your visitors, for example 50%, as shown in the browser monitoring docs.
RUM sits in the same Atatus account as APM, logs and infrastructure monitoring. Page load time is split into network time, which covers the backend call up to the first byte, and front-end time spent in the browser, so you can see which side is slow and then open the backend service in APM. Atatus APM agents cover Node.js, Python, Java, .NET, PHP, Go and Ruby.
Yes. Record each release with the Deployments API, and Atatus shows page views, average load time and error events for every deployment. Set your app version with setVersion to see which release an error came from. Baseline alerts compare page load time, JavaScript error count and AJAX timings with their recent average and notify you when one jumps.
For browser monitoring: React, Angular, AngularJS, Vue, Ember, Backbone, Meteor, Ionic and plain JavaScript. For mobile RUM: Android (Kotlin) and Flutter on Android. For APM: Node.js, Python, Java, .NET, PHP, Go and Ruby. All of them report into the same Atatus account, alongside logs and infrastructure monitoring.
Add the snippet, deploy, and watch Core Web Vitals, load times and AJAX calls arrive from real visitors.
- SaaS
- On-premises
- Hybrid
- BYOC
- No per-user pricing