Web performance monitoring
Know your Core Web Vitals before your users feel them.
featherweight measures LCP, INP and CLS from real visitors, reports them at the 75th percentile the way search engines do, and flags the moment a deploy pushes you over budget.
No credit card. Five-minute setup.

Field data, at a glance
This page, measured on real visitors, sits well inside the 2.5 second LCP budget.
- 2.1B
- vitals recorded / week
- 40ms
- median ingest latency
- p75
- percentile that matters
What you get
Everything you need to keep a page fast.
Real-user vitals
LCP, INP and CLS collected from your actual visitors, summarized at p75, the same way ranking systems read them.
Budgets on every deploy
Set a ceiling for bundle size, transfer weight or any vital. A regression fails the pull request instead of production.
Request waterfalls
Trace what held up the first paint, from render-blocking CSS to a font that arrived a beat too late.
Filmstrip diffs
Watch a page paint frame by frame and compare two deploys side by side.
Alerts without the noise
Hear about it when the p75 moves, not when one slow session blips on a bad connection.
One script, no runtime cost
A two-kilobyte async snippet gathers field data after the page is interactive, so it never blocks rendering.
Request waterfall
See exactly what the browser did first.
Every request on one timeline: the inlined critical CSS, the preloaded font, the LCP image fetched at high priority, and the below-the-fold assets deferred until they are needed. The line marks when the largest element painted.
- Critical CSS inlined, zero render-blocking stylesheets
- Fonts preloaded and self-hosted, no third-party hop
- Below-the-fold media loaded lazily

Performance budgets
Budgets that fail the build, not the launch.
Declare the limits your team agrees on. featherweight checks them on every pull request and turns a slow change into a red check while it is still cheap to fix.
- JavaScript, transfer weight and any vital as a hard limit
- Runs in CI on every pull request
- A regression blocks merge, not your users

From the teams using it
Performance stopped being a debate.
We caught a 600ms LCP regression in code review instead of a week later in analytics.
Ana RibeiroStaff Frontend Engineer The budget check is the first thing our pull requests run now. Reviewers stopped arguing about performance by feel.
Marcus HaleWeb Platform Lead Setup was a script tag and a deploy. We had real p75 numbers the same afternoon.
Priya NairProduct Engineer
Questions
The things reviewers ask first.
How is this different from running Lighthouse in CI?
Lighthouse is a lab test on one machine under fixed conditions. featherweight adds field data from real visitors, so you see the p75 your users actually get rather than a single synthetic run. The two work together: lab to debug, field to decide.
Will the script slow down my site?
The collector is a two-kilobyte module loaded with async, and it reports after the page is interactive. It never blocks rendering. This very page runs it.
Which frameworks does it support?
Any site that runs JavaScript in the browser. The Web Vitals API is a browser standard, so there is nothing framework-specific to install.
Do you sample or store personal data?
It records timing metrics with coarse device and connection buckets. No cookies, no cross-site identifiers, no personal data.
Is there a free tier?
Yes. Up to 100,000 page views a month, all three Core Web Vitals, and thirty days of history.
Ship fast. Keep it that way.
Add the snippet, push a deploy, and watch your real-user vitals land within the hour.
Start monitoring freeFree up to 100,000 views a month.