Stop shipping performance regressions.
Vitalgate runs Lighthouse on every pull request, compares it against your baseline, and fails the PR check when a change breaks your budgets.
Free for one repository · No credit card · 14-day refund on Pro
6 of 10 developer tools fail Core Web Vitals.
Real Chrome users, 75th percentile, the 28 days to October 8, 2026. Source: Chrome UX Report.
- GitHub
- Stripe
- Netlify
- Slack
- Vercel
- Linear
- Notion
- Supabase
- Figma
- Atlassian
From pull request to production, with guardrails.
Connect
Install the GitHub App and pick the repos to monitor, with granular permissions per repo.
Budget
Pick a preset — default, strict or relaxed — for LCP, CLS, FCP, TBT and the performance score. Each metric is either required or a warning.
Enforce
Every PR runs Lighthouse, compares against your baseline, posts the results on the PR, and fails the check when a required budget is broken.
Performance engineering, in your existing GitHub flow.
Results on the pull request
Every metric against its budget and your baseline, in a comment updated on each push, plus a "Vitalgate" check you can make required so a broken budget can't be merged.
Vitalgate: a required performance budget was exceeded
| Metric | This PR | Change vs baseline | Budget | Result |
|---|---|---|---|---|
| Performance score | 81 | -11 | ≥ 90 (required) | |
| Largest Contentful Paint | 2.91s | +38% | ≤ 2.50s (required) | |
| Cumulative Layout Shift | 0.020 | no change | ≤ 0.100 | |
| First Contentful Paint | 1.42s | +2% | ≤ 1.80s | |
| Total Blocking Time | 0.24s | +33% | ≤ 0.30s |
Median of 3 Lighthouse lab runs on this workflow's runner. Full report on Vitalgate
Lighthouse on every pull request
Three Lighthouse runs on every push, on your own GitHub Actions runner or against your preview deployment. The median run counts, so one noisy run can't fail a PR.
LCP: max: 2500ms severity: fail FCP: max: 1800ms severity: warn CLS: max: 0.10 severity: warn PERF: min: 90 severity: fail
Smart alerts
Email, Slack, Discord, Teams, Google Chat and webhook alerts on threshold breaches.
Required checks
Mark the Vitalgate check as required and a broken budget can't be merged.
Runs on your runner
Audits run in your own GitHub Actions. Only the metrics come back.
Multi-tenant orgs
Invite your team as admins or view-only members, per workspace.
One dashboard for every repo, every metric, every regression.
See exactly which repos are healthy and which PRs broke something, without digging through CI logs.
- Workspace-wide performance score, updated on every PR
- Per-repo health score and failing-budget count
- Every PR checked against your budgets, pass or fail
- Alerts to email, Slack, Discord, Teams or Google Chat when something breaks
Simple plans that scale with your repos.
Not for you? Ask within 14 days of your first Pro payment for a full refund. See all plans
Built by one developer, in the open
I'm Francis, a developer from the Dominican Republic, and I build Vitalgate on my own. If it doesn't work with your setup, write to me through the contact form: I read and answer every message.
Not the right fit if you need production monitoring around the clock from many locations: Vitalgate checks pull requests, before they ship. See how it compares.