Performance regression monitoring for SaaS teams and agencies

Know which deploy made you slow.

WhySlow tests your key pages — or every client’s — on a schedule, flags regressions only when they persist, and lines each one up with the GitHub deploy that shipped just before it, along with what changed.

No credit card · One project per site or client

shop.example.com/checkoutmobileLCP · median per run · last 30 days
0s1s2s3s4s5sgood ≤ 2.5s
3be01d79c2a4e051f7b3aa41f9c2e0d88c1

Regression · high confidence

1.8 s to 4.6 s

LCP on /checkout after deploy a41f9c2

Likely cause · image weight[email protected] added +2.1 MB

Illustrative example

  • 5 metricsLCP · CLS · TTFB · FCP · TBT
  • Real Chromiummobile or desktop profile
  • Hourly or dailyon the schedule you pick
  • ≥ 5-run baselinemedian + MAD, not averages
  • ≥ 15%, sustainedbefore anything alerts

01 · How it works

From URL to “that deploy did it” in three steps.

  1. 01

    Add the pages that matter

    Paste a URL, choose mobile or desktop, and test hourly or daily in a real Chromium browser. Every run records LCP, CLS, TTFB, FCP and TBT.

    Page URL

    https://shop.example.com/checkout

    Profile

    MobileDesktop

    Schedule

    HourlyDaily
    Create project
  2. 02

    Connect GitHub (optional)

    One-click OAuth. WhySlow records your deployments, so each regression lines up with the deploy that landed just before it.

    acme/storefront · main · deployments

    • a41f9c2Add full-bleed hero image
    • 51f7b3aBump checkout SDK
    • 9c2a4e0Fix coupon rounding
    • 3be01d7Copy tweaks on pricing
  3. 03

    Get an email when it’s real

    An alert fires only when most recent runs break from a robust baseline, so one noisy test never pages you.

    Regression confirmed

    LCP 1.8 s → 4.6 s

    4 of the last 5 runs breached the baseline

    Emailed [email protected]

02 · The why

Not just “LCP went up.” What changed, and where.

Every confirmed regression gets an investigation automatically, comparing the last good run with the first bad one.

Investigation · /checkout · LCP regressiondeploy a41f9c2

1 Metrics · last good → first bad

LCP1.8 s → 4.6 s
Transfer1.2 → 3.4 MB
Requests24 → 25
TTFB210 → 205 ms

2 Biggest resource changes

/images/[email protected] added+2.1 MB
/chunks/app.js grew+38 KB

22 other resources unchanged

3 Ranked likely causes

  1. Image weight regression high
  2. Request-count regression low

Deploy a41f9c2 added a 2.1 MB hero image. Compress it, serve AVIF or WebP, and size it for the viewport.

AI explanation, only when you click

Illustrative example

GitHub[acme/storefront] Deployment a41f9c2 succeeded
WhySlow · Storefront — LCP regressedto [email protected]

1LCP on https://shop.example.com/checkout regressed by +156% (1.8 s → 4.6 s).

  • LCP: 1.8 s → 4.6 s (+2.8 s, +156%) — 2critical severity, high confidence

Detected Sep 23, 2026, 09:14 UTC.

3View the investigation

Team calendarSprint review moved to Thursday

Illustrative example

03 · The alert

One email, only when it matters.

Alerts go to the people you choose for each project, so a client’s regressions can reach that client’s team.

  1. 1
    What regressed, and by how muchBefore, after and change for every affected metric.
  2. 2
    Severity and confidenceSo you know whether to drop everything or look after lunch.
  3. 3
    A link to the investigationThe matched deploy, the resource diff and the likely cause.

04 · Who it’s for

Built for teams that ship every day.

SaaS teams

Catch the deploy that slowed signup or checkout before your customers do.

/checkout · LCPstable · 1.8 s
  • Watch the pages that make you money, hourly or daily
  • Regressions matched to your GitHub deploys
  • Alerts go to the team that shipped it

Agencies

Show a client exactly which release slowed their site, and which one fixed it.

  • client-a.comstable
  • client-b.comstable
  • client-c.comLCP +38%
  • client-d.comstable
  • One project per client, each with its own schedule and repo
  • Separate alert recipients per client
  • A history of every run, regression and deploy

On the roadmap Shareable client reports · team seats · Slack alerts

05 · FAQ

Questions we get asked.

Still curious? Email us.

Is this lab data or real-user data?

Lab data. WhySlow loads your pages in a real browser under the same conditions every time, which is what makes before/after comparisons meaningful. It complements real-user monitoring (like Vercel Speed Insights or Chrome UX Report) rather than replacing it: RUM tells you users are slower; WhySlow tells you which deploy did it and what changed.

How do you avoid false alarms?

Each page builds a baseline from at least five runs, using the median and median absolute deviation so outliers don’t skew it. A regression is confirmed only when the change is statistically large, at least 15%, and shows up in most of the recent runs — never on a single spike.

How do you know which deploy caused it?

WhySlow records every deployment from your connected repo and matches a regression to the deploy that landed right before it. If several deploys ship between two runs, the one it names is the closest suspect, not a certainty — testing hourly narrows the window.

What GitHub access do you need?

WhySlow asks for GitHub’s repo scope so it can list your repositories and register a deployment webhook, including on private repos. The token is encrypted at rest (AES-256-GCM), used only on our servers, and never sent to your browser. Disconnect any time.

Why not just use Lighthouse CI or Vercel Speed Insights?

Keep them if you have them. Lighthouse CI checks pull requests before they ship; Vercel Speed Insights measures real visitors on Vercel-hosted sites.

WhySlow watches production after it ships, on any host, and connects each regression to a deploy and to the resources that changed.

Can I monitor many client sites?

Yes. Create one project per client, each with its own pages, schedule, GitHub repo and alert recipients. Shareable client reports and team seats are on the roadmap, and design partners help shape them.

Is the AI explanation automatic?

No. Every regression gets an investigation automatically (metric and resource diffs, ranked likely causes). The AI explanation runs only when you click for it.

What does it cost?

WhySlow is free during early access. Paid plans will be priced by the number of monitored pages, and we’ll give you notice before anything is charged.

What do you store, and for how long?

Metrics and run history for your pages, plus screenshots, network logs and traces from each run. Those larger files are deleted after 30 days. See the privacy policy for details.

Do you support Slack?

Alerts are email-only today. Slack is next on the list.

Find out what the last deploy cost you (or your client).

Paste a URL. WhySlow runs the first test right away and keeps watching on the schedule you pick.

No credit card · Free during early access

Become a design partner

We’re looking for 10 SaaS teams and 10 agencies: free for six months and a direct line to the founder, in exchange for honest feedback.

Apply by email