OSS GitHub Actions hygiene leaderboard

Live ranking of 40 popular OSS repositories by their GitHub Actions workflow hygiene. Lower score = better. Powered by ci-doctor (14 rules) and gha-budget (per-job pricing). Workflow YAML re-fetched from each repo every day.

Last updated 2026-04-28 03:36 UTC · raw data (JSON) · scan your own repo · original 20-repo report

New report
State of OSS CI Hygiene 2026 (Edition 1) · the data on this page, packaged as a 12-page PDF + raw JSON snapshot for $14.
Get the report →
Repos ranked
40
Workflows scanned
533
Total findings
2,126
Modeled $/mo combined
$96,021

Cleanest 5 (lowest score)

  1. mui/material-ui 1.59
  2. gatsbyjs/gatsby 2.00
  3. pnpm/pnpm 2.11
  4. vitejs/vite 2.13
  5. jestjs/jest 2.22

Most findings per workflow (highest score)

  1. parcel-bundler/parcel 8.25
  2. denoland/deno 8.18
  3. axios/axios 7.94
  4. tailwindlabs/tailwindcss 6.63
  5. sequelize/sequelize 6.44

Top rules across all repos

RuleHits
missing-timeout850
pinned-action-sha255
missing-cache190
missing-concurrency176
missing-permissions153

Full ranking (sorted by hygiene score)

# Trend Repo Score WFs Findings E/W/I $/run $/mo*
1 - mui/material-ui · scan 1.59 17 30 0/24/6 $0.90 $806
2 - gatsbyjs/gatsby · scan 2.00 1 2 0/2/0 $0.06 $58
3 - pnpm/pnpm · scan 2.11 9 21 0/17/4 $0.70 $634
4 - vitejs/vite · scan 2.13 12 26 0/25/1 $1.09 $979
5 - jestjs/jest · scan 2.22 9 20 0/20/0 $0.90 $806
6 - sveltejs/svelte · scan 2.40 5 14 0/10/4 $0.70 $634
7 - prettier/prettier · scan 2.50 17 32 6/23/3 $1.02 $922
8 - ReactiveX/rxjs · scan 2.50 4 12 0/8/4 $0.38 $346
9 - webpack/webpack · scan 2.56 9 25 0/21/4 $1.15 $1,037
10 - nuxt/nuxt · scan 2.63 28 64 7/48/9 $2.11 $1,901
11 - remix-run/react-router · scan 2.66 19 52 0/49/3 $1.22 $1,094
12 - electron/electron · scan 2.80 42 110 11/70/29 $2.30 $2,074
13 - fastify/fastify · scan 2.85 20 61 0/53/8 $1.41 $1,267
14 - nodejs/node · scan 2.89 36 104 2/94/8 $6.27 $5,645
15 - sindresorhus/got · scan 3.00 1 3 0/3/0 $0.00 $0
16 - lodash/lodash · scan 3.31 8 28 0/25/3 $0.64 $576
17 - facebook/react · scan 3.42 24 91 0/73/18 $16.19 $14,573
18 - preactjs/preact · scan 3.44 8 30 0/25/5 $0.64 $576
19 - nestjs/nest · scan 3.50 1 5 0/2/3 $0.06 $58
20 - storybookjs/storybook · scan 3.69 16 68 0/50/18 $2.11 $1,901
21 - TanStack/query · scan 3.80 5 20 0/18/2 $0.45 $403
22 - microsoft/TypeScript · scan 4.06 18 79 0/67/12 $1.92 $1,728
23 - chakra-ui/chakra-ui · scan 4.17 3 13 0/12/1 $0.51 $461
24 - vuejs/core · scan 4.28 9 39 0/38/1 $0.83 $749
25 - eslint/eslint · scan 4.80 10 51 0/45/6 $1.66 $1,498
26 - microsoft/playwright · scan 4.95 19 94 0/94/0 $1.79 $1,613
27 - npm/cli · scan 5.15 26 133 3/120/10 $2.56 $2,304
28 - vercel/next.js · scan 5.24 37 166 17/137/12 $4.10 $3,686
29 - expressjs/express · scan 5.25 4 18 2/14/2 $0.38 $346
30 - prisma/prisma · scan 5.32 17 91 0/90/1 $14.59 $13,133
31 - date-fns/date-fns · scan 5.36 7 34 2/31/1 $0.58 $518
32 - biomejs/biome · scan 5.39 23 143 0/105/38 $0.51 $461
33 - swc-project/swc · scan 5.56 16 89 1/84/4 $2.69 $2,419
34 - remix-run/remix · scan 6.23 11 70 0/67/3 $1.54 $1,382
35 - rollup/rollup · scan 6.38 4 25 2/16/7 $0.64 $576
36 - sequelize/sequelize · scan 6.44 9 41 9/30/2 $5.25 $4,723
37 - tailwindlabs/tailwindcss · scan 6.63 4 31 0/22/9 $1.54 $1,382
38 - axios/axios · scan 7.94 8 40 12/27/1 $2.62 $2,362
39 - denoland/deno · scan 8.18 11 99 0/81/18 $21.76 $19,584
40 - parcel-bundler/parcel · scan 8.25 6 52 0/47/5 $0.90 $806
Methodology. Each repo's .github/workflows/*.yml is fetched fresh from the GitHub public API daily. ci-doctor emits findings against 14 rules. Score = (errors×3 + warns×1 + info×0.5) / workflow_count. Cost columns assume 8 min/job, 30 runs/day, GitHub-hosted standard ubuntu-latest pricing. Trend column compares to the previous day's snapshot. Self-hosted and large-runner jobs are not priced.
This is not an attack on any of these projects. They all ship excellent software. The point of a public, ranked, daily-updated leaderboard is that the same patterns show up everywhere, and seeing real numbers is more useful than abstract advice. To request removal from the list, open an issue on depmedicdev-byte/depmedicdev-byte.github.io.