TRUE PAGE LOAD MONITORING

Most tools stop when the spinner stops. We don't.

Every modern web app loads in stages. The skeleton appears, the spinner disappears — but the data hasn't arrived yet. Most monitoring tools call that "loaded." We don't.

Witnes measures until the page is genuinely usable — through SPA transitions, deferred API calls, and hydration. Because that's what your users actually experience.

No cookies EU-based GDPR-ready No consent banner needed

THE GAP OTHER TOOLS MISS

"Our monitoring says 300ms. Users say it's slow."

Your tool measured until the skeleton appeared. Your users waited another 2 seconds for the actual data to load. Both are right — but only one matches reality.

THE GAP OTHER TOOLS MISS

"The page loads fine on the first visit. SPA navigations feel broken."

Most tools only measure full page loads. Every time a user navigates within your React or Next.js app, that transition goes unmeasured and ungraded.

HOW WE'RE DIFFERENT

What others measure vs what we measure.

The difference between a 192ms load time and a 1.66s load time is what your user actually waited for.

OTHER TOOLS

0ms

Navigation started

192ms

First Contentful Paint

Stops measuring here
768ms

Skeleton visible

Data still loading — unmeasured

1268ms

Long task

Unmeasured, unreported

1.66s

Page actually usable

Never recorded

WITNES

0ms

Navigation started

192ms

First Contentful Paint

Noted — keeps going

768ms

Skeleton visible

Still measuring

1268ms

Long task detected (85ms)

Flagged and attributed

1.66s

Page actually usable

Witnes measures this

NETWORK WATERFALL

Every resource. Every millisecond.

See the full network waterfall for every page load — scripts, stylesheets, API calls. Identify exactly which resource is blocking your users without opening DevTools on their machine.

Server delivery, TTFB, FCP, DOM Interactive, LCP — all in one place, for every real visit.

Page Load · /dashboard/visitors · 019cec87-873d...

TTFB

29ms

FCP

192ms

LCP

192ms

NETWORK WATERFALL (32 RESOURCES)

SCRIPT w.min.js
36ms
LINK dashboar...
27ms
SCRIPT client.Cu...
3ms
SCRIPT Dashboar...
7ms
XHR visitors?P...
45ms
XHR org-ids?p...
25ms
XHR features
17ms

Long task at 1268ms (duration: 85ms)

KEY CAPABILITIES

What true load time monitoring actually includes.

Full SPA support

Every navigation inside your React, Next.js, or Vue app is tracked and graded — not just the initial page load.

Measures until usable

We wait for deferred data, API responses, and hydration to complete before recording the load time. That's what your user waited for.

Long task detection

Automatically flags tasks that blocked the main thread for over 50ms — with timestamps so engineers know exactly where to look.

Network waterfall

Every resource for every real visit — scripts, stylesheets, XHR calls — with timing breakdowns. No synthetic tests, no estimates.

Server & delivery metrics

TTFB, FCP, DOM Interactive, LCP, CLS — all captured automatically for every page load across every visitor.

Real visits only

No synthetic monitoring, no bot traffic, no lab data. Every data point comes from a real user on a real device in a real network condition.

GET STARTED

Measure what your users actually waited for.

One script tag. Automatic SPA tracking. Full waterfall on every visit. No config needed.