Measured
How much does it weigh?
The number, how it was measured, and the command that reproduces it. A performance claim nobody can check is marketing, not engineering.
21.8
KB gzipped
of a 30 KB budget
Computed from the built artefact each time the site publishes, so this figure is whatever the shipped runtime actually weighs today. 71.8 KB raw, and 8.2 KB left of a 30 KB budget.
The comparison
What we measured, and what we did not.
| Measure | Leadgible | Competitor A | Competitor B | Competitor C |
|---|---|---|---|---|
| Runtime size, gzippedThe built artefact, as served | 21.8 KBComputed at publish | Not yet measured | Not yet measured | Not yet measured |
| Blocking time on the host pageMain thread, first 5 seconds | Not yet measured | Not yet measured | Not yet measured | Not yet measured |
| Effect on Largest Contentful PaintAgainst the same page without an embed | Not yet measured | Not yet measured | Not yet measured | Not yet measured |
11 of the 12 cells here are empty. We have not measured the others, and we are not going to publish a number we did not take.
Method
Run it yourself.
What is measured
The built runtime, gzipped at level 9 - the same compression the release gate uses. Not the source, and not the uncompressed file on disk.
What is not counted
Anything on your page. The figure is the bundle alone, and the voice runtime is a separate lazy-loaded chunk that never appears in it.
By what
scripts/check-embed-size.mjs, which runs on every build and fails it if the number crosses the budget. The figure on this page is read from the same artefact by the same method, so the two cannot disagree.
What a browser actually downloads
Less than this. Our host negotiates brotli when the browser accepts it, which is smaller again - we publish the gzip figure because it is the one the budget is written in and the one you can check.
The exact command
Clone the repository and run this. It builds the runtime and prints the gzipped size against the budget โ the same script the release gate uses, so it cannot print a different number than this page.
pnpm --filter @leadgible/embed build && node scripts/check-embed-size.mjs
gzip level 9, against the built artefact โ not against the source and not against an uncompressed bundle.
Voice loads separately and only when used, so it is not part of this figure. Voice is not built yet either.
The budget is enforced by the build. Above it the build fails; it does not warn and carry on.