[Docs] Tell hosts to enable compression, and publish the web first-load figure #614

Closed
opened 2026-07-22 16:19:56 +00:00 by brenno · 1 comment
Owner

Found in the pre-publication performance review.

Measurement, on build/web/ in this tree: main.dart.js 14.1 MB raw / 3.9 MB gzip; canvaskit/canvaskit.wasm 7.1 MB / 2.8 MB; plus every font in assets/FontManifest.json (5 variable TTFs, 3.2 MB raw / ~1.6 MB gzip, plus ~0.6 MB KaTeX) which CanvasKit fetches before the first frame; plus assets/privacy/health_lexicon.json (2.0 MB), which lib/main.dart:74 deliberately awaits before runApp. Roughly 9 MB compressed, ~25 MB uncompressed before the first paint.

docs/HOSTING.md:40-50 says "any static host works" and suggests python3 -m http.server, which serves nothing compressed. No payload figure appears in HOSTING.md or docs/PERFORMANCE_GUIDE.md.

Why this matters now: a web demo is the cheapest way to earn the positive feedback this launch is aiming for, and simultaneously the easiest way to squander it. Anyone following §2 literally serves 25 MB uncompressed and their visitor stares at white for tens of seconds. The hosting guide is otherwise strictly honest about web limitations, so this gap stands out.

Proposal: three lines in HOSTING.md §2 — enable brotli/gzip for .js, .wasm, .json and .ttf; state the measured first-visit figure; warn that python3 -m http.server is for a local check only. One line in PERFORMANCE_GUIDE under Measured figures with the same number and a date.

Found in the pre-publication performance review. **Measurement**, on `build/web/` in this tree: `main.dart.js` 14.1 MB raw / 3.9 MB gzip; `canvaskit/canvaskit.wasm` 7.1 MB / 2.8 MB; plus every font in `assets/FontManifest.json` (5 variable TTFs, 3.2 MB raw / ~1.6 MB gzip, plus ~0.6 MB KaTeX) which CanvasKit fetches before the first frame; plus `assets/privacy/health_lexicon.json` (2.0 MB), which `lib/main.dart:74` deliberately awaits before `runApp`. Roughly **9 MB compressed, ~25 MB uncompressed before the first paint**. `docs/HOSTING.md:40-50` says "any static host works" and suggests `python3 -m http.server`, which serves nothing compressed. No payload figure appears in HOSTING.md or `docs/PERFORMANCE_GUIDE.md`. **Why this matters now:** a web demo is the cheapest way to earn the positive feedback this launch is aiming for, and simultaneously the easiest way to squander it. Anyone following §2 literally serves 25 MB uncompressed and their visitor stares at white for tens of seconds. The hosting guide is otherwise strictly honest about web limitations, so this gap stands out. **Proposal:** three lines in HOSTING.md §2 — enable brotli/gzip for `.js`, `.wasm`, `.json` and `.ttf`; state the measured first-visit figure; warn that `python3 -m http.server` is for a local check only. One line in PERFORMANCE_GUIDE under *Measured figures* with the same number and a date.
Author
Owner

Opgelost in #656 (gemerged). make check groen op de gerebasede kop.

Opgelost in #656 (gemerged). `make check` groen op de gerebasede kop.
brenno 2026-07-22 17:30:03 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#614
No description provided.