Skip to content

v1.0.0 - Initial Release

Choose a tag to compare

@q1sh101 q1sh101 released this 21 Jan 15:50
· 5 commits to main since this release

Automated Bundle Size Monitoring

Track bundle size changes in CI/CD pipelines. Catch performance regressions before merging with instant PR comments showing gzip/brotli metrics.

Example PR comment

Real PR comment showing:

  • Total bundle size (gzip/brotli)
  • Per-file changes with clear +/- markers and arrows (🔴 ↑ / 🟢 ↓)
  • Budget status (✅ / ⚠️ / ❌)
  • Top file changes ranked by impact (⬆️ largest first)

Features

  • PR-native feedback - Size diff comments appear automatically in every PR
  • Multi-compression metrics - Compare raw, gzip, and brotli sizes in one table
  • Budget enforcement - Set limits and fail builds that exceed thresholds
  • Zero-config setup - Auto-detects output folders for any bundler (Vite, Webpack, Next.js, Nuxt, Astro, SvelteKit, and more)
  • Privacy-first - Uses GitHub Artifacts only - no external services or data sharing
  • Framework-agnostic - Scans JS/CSS output from any build tool

Quick Start

- uses: q1sh101/build-size-diff@v1
  with:
    github-token: ${{ secrets.GITHUB_TOKEN }}

Push to your default branch to create a baseline. Open a PR to see the size diff.


Common Use Cases

Budget Enforcement:

- uses: q1sh101/build-size-diff@v1
  with:
    github-token: ${{ secrets.GITHUB_TOKEN }}
    budget-max-increase-kb: 50
    fail-above-kb: 25

Monorepo:

- uses: q1sh101/build-size-diff@v1
  with:
    github-token: ${{ secrets.GITHUB_TOKEN }}
    dist-path: 'apps/web/dist'
    build-command: 'npm run build --workspace=web'

Troubleshooting

"No baseline found" → Push to your default branch first to create baseline
"Auto-detection failed" → Set dist-path explicitly (e.g., dist-path: 'build')

Full documentation · All configuration options


Technical Details

  • TypeScript with strict mode
  • Bundler-agnostic (scans JS/CSS output)
  • Parallel compression for faster scans
  • Security: path traversal + zip bomb protection
  • MIT licensed

Built for developers who care about performance.

Built by Giorgi Kishmareia · Theatom.me