← Back to CV

usertax

what a PR costs your users

MITGitHub ↗

usertax · vite-appreal report ↗
metricgzipchange
JS · /68.9 → 88.5 kB+19.6 kB
JS · /about/67.9 → 68.1 kB+169 B
moment2.30.1 added directly, 60.1 kB

suggested alternatives: day.js, date-fns, luxon · source: e18e

The problem

Bundle checks say “the bundle grew.” Reviewers want to know why. usertax joins the lockfile diff with source-map sizes, so the comment says “moment was added and brought 60 kB.”

What it does

Measures every pull request on web and mobile and posts one comment with the change and its cause: JavaScript per route, Lighthouse metrics, React Native bundles and APK / AAB / IPA size.

Highlights

5
  • Byte-exact attribution: every byte goes to a package, your code, or explicitly “unattributed”
  • Lockfile diffs for pnpm, npm and Yarn, including transitive packages
  • Lighthouse changes judged against a noise model measured on 3 runners × 30 runs
  • Fork-safe two-workflow setup: measure on pull_request, comment from workflow_run
  • 278 tests; deterministic, no LLM, no account, no upload

Stack

TypeScript · Node.js · Lighthouse · Source maps · React Native · GitHub Actions · MCP