Skip to content

docs(readme): replace the dead bundlephobia badges, and correct the size claim - #1614

Merged
obiot merged 1 commit into
masterfrom
readme-badges
Aug 29, 2026
Merged

docs(readme): replace the dead bundlephobia badges, and correct the size claim#1614
obiot merged 1 commit into
masterfrom
readme-badges

Conversation

@obiot

@obiot obiot commented Aug 29, 2026

Copy link
Copy Markdown
Member

Both bundlephobia badges rendered as bundlephobia 429. badgen's endpoint is
rate limited by an upstream service that is effectively unmaintained, and
shields' equivalent returns "rate limited by upstream service" too. They looked
like a duplicated badge because both failed to the same error text, though one
was meant to report minzip size and the other tree-shaking. Replaced with a
working bundlejs size badge; there is no tree-shaking equivalent.

DOC_README.md carried the same dead badge, with its link pointing at an
unrelated repository's LICENSE file.

The size claim was stale

With a badge reporting a real number again, the neighbouring prose was wrong. It
claimed ~150 KB minzipped, written at 19.7.1 in June, before WebGPU, 3D meshes,
the glTF loader and the blend mode shaders landed. Measured at 20.2.0: 246 kB
gzip locally via esbuild, 254 kB via bundlejs. Quoted as ~250 KB, the
resolution the two instruments agree at.

And "lightweight" rested on tree-shaking, which does not hold up

Measured against the shipped build/index.js — the single 2.1 MB file a
consumer's bundler actually sees, since the other entries under build/ are
.d.ts only:

imported gzip
Vector2d alone 184 kB
Application 230 kB
the platformer example's real 31 symbols 234 kB
the whole barrel 246 kB

There is a 184 kB floor: importing a single vector class pulls three quarters of
the engine, and a real game saves about 5% rather than a large fraction.
sideEffects is declared correctly (./src/polyfill/**), so this is not a
missing hint — everything transitively reaches the renderers.

So the tree-shaking sentence is removed rather than left as an aspiration, the
engine is described as full-featured, and the size speaks for itself. The 184 kB
floor is a real finding but a separate concern from this README wording, and is
not addressed here.

Copilot AI lite review requested due to automatic review settings August 29, 2026 01:56

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI review requested due to automatic review settings August 29, 2026 01:59

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

…ize claim

Both bundlephobia badges rendered as "bundlephobia 429": badgen's endpoint is
rate limited by an upstream service that is effectively unmaintained, and
shields' equivalent returns "rate limited by upstream service" too. They read as
a duplicate badge because both failed to the same error text, though they were
meant to report minzip size and tree-shaking. Replaced with a working bundlejs
size badge; there is no tree-shaking equivalent. DOC_README carried the same
dead badge, linked to an unrelated repository's LICENSE file.

With a badge reporting a real number again, the neighbouring prose was wrong:
it claimed ~150 KB minzipped, written at 19.7.1 before WebGPU, 3D meshes, the
glTF loader and the blend mode shaders landed. Measured at 20.2.0: 246 kB gzip
locally via esbuild, 254 kB via bundlejs. Quoted as ~250 KB, which is the
resolution the two agree at.

Also drops the tree-shaking justification behind the "lightweight" framing,
because the numbers do not support it. Measured against the shipped
build/index.js, which is the single file a consumer's bundler actually sees:

  import { Vector2d }    184 kB gzip
  import { Application } 230 kB
  the platformer example's real 31 imports
                         234 kB
  the whole barrel       246 kB

So there is a 184 kB floor, and a real game saves about 5% rather than a large
fraction. `sideEffects` is declared correctly, so this is not a missing hint —
everything transitively reaches the renderers. The engine is described as fully
featured instead, and the size is left to speak for itself.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Aa37KGXZcnVrbn1yG4j1N
Copilot AI review requested due to automatic review settings August 29, 2026 02:02

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@obiot
obiot merged commit a89c562 into master Aug 29, 2026
14 of 18 checks passed
@obiot
obiot deleted the readme-badges branch August 29, 2026 03:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants