All comparisons

Vitalgate vs Lighthouse CI

Both fail a pull request when Lighthouse says it got slower. Lighthouse CI is free and fully configurable, but you write the config, manage tokens and host a server if you want history. Vitalgate commits the workflow for you and adds a dashboard, PR comments, alerts and real-user data.

Vitalgate and Lighthouse CI compared
FeatureVitalgateLighthouse CI
SetupInstall the GitHub App, pick repos; the workflow is committed for youWrite lighthouserc and a workflow; add a token secret per repo
BudgetsLCP, CLS, FCP, TBT and score, edited in the dashboard; required or warningAny Lighthouse audit, as assertions in a config file
Pull request feedbackA Vitalgate check plus a results comment, updated per pushA status check (via its GitHub App or a personal token)
Preview deploymentsAudits the preview URL Vercel, Netlify or Render reports, no buildPossible with your own workflow scripting
History and trendsBuilt in, per repository and pull requestNeeds a self-hosted Lighthouse CI server
AlertsEmail, Slack, Discord, Teams, Google Chat and webhooksNone built in
Real-user metrics (INP)From the Chrome UX Report, per repositoryNo, lab data only
Runs per auditThree per pull request; the median run is reportedConfigurable, with median selection
PriceFree for 1 repository; Pro is $29/month per workspace for unlimited repositories.Free

Lighthouse CI details from its own site, checked October 2026. Lighthouse CI pricing: Free and open source. History and report diffs need a Lighthouse CI server you host yourself.

What a pull request gets from Vitalgate

A results comment, updated on every push, and a "Vitalgate" check that fails when a required budget is broken. Make the check required and the pull request can't be merged.

vitalgate[bot]commented on acme/storefront#1042

Vitalgate: a required performance budget was exceeded

MetricThis PRChange vs baselineBudgetResult
Performance score81-11≥ 90 (required)
Largest Contentful Paint2.91s+38%≤ 2.50s (required)
Cumulative Layout Shift0.020no change≤ 0.100
First Contentful Paint1.42s+2%≤ 1.80s
Total Blocking Time0.24s+33%≤ 0.30s

Median of 3 Lighthouse lab runs on this workflow's runner. Full report on Vitalgate

VitalgateA required budget was exceededRequired
VercelPreview deployed
Example of the comment and check Vitalgate adds to a pull request

Setup and upkeep

Lighthouse CI gives you the building blocks: you write the lighthouserc file, the GitHub Actions workflow, and store a token in each repository for status checks. That's flexible, and it's yours to maintain across every repo. Vitalgate detects the package manager, serve script and port, commits the workflow through its GitHub App, and authenticates runs with GitHub's OIDC tokens, so there's no secret to copy.

Budgets and feedback

Lighthouse CI can assert on any audit Lighthouse produces, which is more than Vitalgate covers. Vitalgate focuses on the metrics that matter for Core Web Vitals and the overall score, lets non-engineers change budgets from a dashboard, and explains failures in a pull request comment rather than only a red status.

Where Lighthouse CI is stronger

It's free, it runs anywhere (not just GitHub), it can assert on every Lighthouse audit, and it can audit several URLs per build. If you want full control and are happy to host and maintain it, it's a great choice.

Switching from Lighthouse CI

Already running Lighthouse CI? Switching takes a few minutes per repository, and your thresholds carry over.

  1. 1

    Connect the repository

    Install the Vitalgate GitHub App on the repository and connect it. Vitalgate commits .github/workflows/vitalgate.yml, or audits your preview deployments if Vercel, Netlify or Render already builds them.

  2. 2

    Copy your assertions into budgets

    Open the repository's Budgets tab and enter the thresholds from your lighthouserc file, using the mapping below. An assertion at the error level becomes a required budget; warn becomes a warning.

  3. 3

    Swap the required check

    In your branch protection rules, require the "Vitalgate" check instead of the Lighthouse CI status.

  4. 4

    Remove what you no longer need

    Delete your Lighthouse CI workflow, the LHCI_GITHUB_APP_TOKEN or LHCI_GITHUB_TOKEN secret, and the Lighthouse CI GitHub App. Vitalgate authenticates with GitHub's OIDC tokens, so there's no secret to add.

Lighthouse CI assertions and their Vitalgate budgets
In lighthousercVitalgate budget
categories:performance minScore: 0.9Performance score ≥ 90
largest-contentful-paint maxNumericValue: 2500LCP ≤ 2500 ms
cumulative-layout-shift maxNumericValue: 0.1CLS ≤ 0.1
first-contentful-paint maxNumericValue: 1800FCP ≤ 1800 ms
total-blocking-time maxNumericValue: 300TBT ≤ 300 ms

Assertions on other audits have no Vitalgate equivalent. Results stored on a Lighthouse CI server don't move over: the first pull request Vitalgate audits becomes the baseline.

Choose Lighthouse CI for

  • Teams who want full control over every Lighthouse assertion
  • CI systems other than GitHub Actions
  • Budgets of zero, with time to host and maintain a server

Choose Vitalgate for

  • Teams on GitHub who want budgets working in minutes, across many repos
  • Auditing Vercel, Netlify or Render previews without building in CI
  • Alerts and trends without hosting anything

Try Vitalgate on your next pull request

Free for one repository. Install the GitHub App, pick a repo, and the next pull request gets a performance check.