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-10-26 19:45 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
585
Total findings
2,872
Modeled $/mo combined
$100,051

Cleanest 5 (lowest score)

  1. sveltejs/svelte 1.25
  2. nestjs/nest 1.75
  3. TanStack/query 2.00
  4. gatsbyjs/gatsby 2.00
  5. storybookjs/storybook 2.23

Most findings per workflow (highest score)

  1. remix-run/remix 25.58
  2. biomejs/biome 14.50
  3. swc-project/swc 13.21
  4. axios/axios 13.00
  5. microsoft/TypeScript 10.77

Top rules across all repos

RuleHits
missing-timeout1013
deprecated-action662
missing-cache294
artifact-no-retention178
missing-concurrency160

Full ranking (sorted by hygiene score)

# Trend Repo Score WFs Findings E/W/I $/run $/mo*
1 - sveltejs/svelte · scan 1.25 4 6 0/4/2 $0.45 $403
2 - nestjs/nest · scan 1.75 2 5 0/2/3 $0.13 $115
3 - TanStack/query · scan 2.00 4 9 0/7/2 $0.38 $346
4 - gatsbyjs/gatsby · scan 2.00 1 2 0/2/0 $0.06 $58
5 - storybookjs/storybook · scan 2.23 20 48 0/41/7 $1.98 $1,786
6 - fastify/fastify · scan 2.65 20 57 0/49/8 $1.41 $1,267
7 ↑1 mui/material-ui · scan 2.82 17 35 8/21/6 $0.83 $749
8 ↓1 sindresorhus/got · scan 3.00 1 3 0/3/0 $0.00 $0
9 - date-fns/date-fns · scan 3.83 6 23 0/23/0 $0.38 $346
10 - chakra-ui/chakra-ui · scan 4.17 3 13 0/12/1 $0.51 $461
11 - vercel/next.js · scan 4.28 30 113 11/89/13 $3.26 $2,938
12 - prettier/prettier · scan 4.38 17 41 17/23/1 $1.02 $922
13 - vitejs/vite · scan 4.42 13 39 10/26/3 $1.22 $1,094
14 - tailwindlabs/tailwindcss · scan 4.63 4 23 0/14/9 $1.60 $1,440
15 - preactjs/preact · scan 4.69 8 28 6/17/5 $0.70 $634
16 ↑2 npm/cli · scan 5.00 26 133 1/122/10 $2.56 $2,304
17 ↑2 eslint/eslint · scan 5.05 10 53 0/48/5 $1.73 $1,555
18 ↓2 nuxt/nuxt · scan 5.09 23 72 24/42/6 $2.50 $2,246
19 ↑1 facebook/react · scan 5.12 26 143 0/123/20 $16.83 $15,149
20 ↑1 webpack/webpack · scan 5.21 14 31 22/5/4 $2.43 $2,189
21 ↑1 vuejs/core · scan 5.31 8 25 9/15/1 $0.77 $691
22 ↑1 electron/electron · scan 5.77 52 204 59/101/44 $3.33 $2,995
23 ↑1 nodejs/node · scan 5.81 45 167 50/106/11 $6.72 $6,048
24 ↑1 lodash/lodash · scan 6.06 8 34 8/23/3 $0.64 $576
25 ↑1 jestjs/jest · scan 6.18 11 40 14/26/0 $1.47 $1,325
26 ↑1 prisma/prisma · scan 6.19 18 65 25/33/7 $2.62 $2,362
27 ↑1 ReactiveX/rxjs · scan 6.27 11 41 15/22/4 $2.50 $2,246
28 ↑1 remix-run/react-router · scan 7.53 19 130 16/76/38 $3.65 $3,283
29 ↑1 sequelize/sequelize · scan 7.78 9 45 13/30/2 $5.18 $4,666
30 ↑1 rollup/rollup · scan 7.79 7 35 11/19/5 $1.09 $979
31 ↑1 denoland/deno · scan 8.05 11 97 0/80/17 $21.89 $19,699
32 ↑1 parcel-bundler/parcel · scan 8.25 6 52 0/47/5 $0.90 $806
33 ↑1 pnpm/pnpm · scan 9.32 31 165 67/78/20 $2.05 $1,843
34 ↑1 expressjs/express · scan 9.40 5 28 10/16/2 $0.45 $403
35 ↑1 microsoft/playwright · scan 9.45 19 109 36/70/3 $3.78 $3,398
36 ↑1 microsoft/TypeScript · scan 10.77 13 93 27/52/14 $1.54 $1,382
37 ↑1 axios/axios · scan 13.00 8 62 21/41/0 $2.88 $2,592
38 ↓21 swc-project/swc · scan 13.21 17 135 48/74/13 $3.84 $3,456
39 - biomejs/biome · scan 14.50 25 238 73/122/43 $0.51 $461
40 - remix-run/remix · scan 25.58 13 230 61/130/39 $5.38 $4,838
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.