React.lazy, Suspense and the Hidden 300 ms Delay
Comments on “React.lazy, Suspense and the Hidden 300 ms Delay”
Claim-checked. Scored by all three judges, and its checkable claims were compared with the sources it cites. How far stories are checked
The team behind the Tab Widgets extension found that React's 300 ms reveal throttle, not bundle size, delayed its dashboard. A lazy component suspends once on first render, and React holds suspended content back for 300 ms. Rendering a placeholder itself instead of suspending moved first widget content from 540 ms to 298 ms, and 85% of content from 540 ms to 336 ms. Full load was unchanged. These are means of four runs on one Windows machine, and the fix relies on React's private fields.
Why it ranked
No. 17 of 127 with a score of 0.64. The panel rated it highest on technical depth (0.91) and new information (0.90), lowest on significance (0.46). Placed No. 17, No. 43 by score alone: the placement terms moved other stories past it.
- AI judgeJudge 2claude-haiku-5-5
- Detailed, measured engineering write-up on React.lazy suspense throttling causing startup delay, with benchmarks and practical fix; narrower audience to React front-end builders, mostly new content.
- AI judgeJudge 3gpt-5.6-luna
- A detailed, reproducible React performance investigation with code, measurements, trace methodology, tradeoffs, and an alternative implementation. It offers broadly useful frontend guidance, though results are product- and environment-specific.
Each judge wrote its line after answering the rubric, with the site and the author still hidden. Every answer behind this is in the table under Score.
Score
0.64total under rubric v2.3
- Significance0.46
- Reader interest0.75
- Audience breadth0.54
- Practical relevance0.78
- Substantiated0.86
- Technical depth0.91
- New information0.90
- Counts against: Promotional0.12
- Counts against: Overclaim0.18
Each judge’s answer per question (0–1), their mean and spread, and what the question adds to the score (weight × mean).
| Question | Judge 1 | Judge 2 | Judge 3 | Mean | Spread | Weight | Contribution (weight times mean) |
|---|---|---|---|---|---|---|---|
| SignificanceHow much does this change what people in tech know or can do? | 0.51 | 0.30 | 0.58 | 0.46 | 0.28 | +0.24 | +0.111 |
| Reader interestWould a well-informed senior engineer or tech founder want to read this today, and likely pass it on? | 0.70 | 0.70 | 0.86 | 0.75 | 0.16 | +0.26 | +0.196 |
| Audience breadthHow many people who build technology does it concern? | 0.59 | 0.40 | 0.62 | 0.54 | 0.22 | +0.13 | +0.070 |
| Practical relevanceHow useful is it to someone who builds software or tech products? | 0.86 | 0.70 | 0.78 | 0.78 | 0.17 | +0.22 | +0.172 |
| SubstantiatedHow well is it backed? Consider whether it is the primary source, and whether its main claims come with data, code, a demo, a reproducible method or citations. | 0.98 | 0.75 | 0.86 | 0.86 | 0.23 | +0.05 | +0.043 |
| Technical depthHow technically substantive is it? | 1.00 | 0.85 | 0.88 | 0.91 | 0.15 | +0.05 | +0.046 |
| New informationDoes it contain information absent from the stories covered in the last 7 days (list provided)? | 0.90 | 0.85 | 0.94 | 0.90 | 0.09 | +0.05 | +0.045 |
| PromotionalIs it mainly marketing with little substance (a press release, ad or sponsored post with no real information)? A launch post that carries real news is not promotional. | 0.07 | 0.20 | 0.08 | 0.12 | 0.13 | −0.19 | −0.022 |
| OverclaimDo the headline or conclusions claim more than the body supports? | 0.22 | 0.20 | 0.12 | 0.18 | 0.10 | −0.11 | −0.020 |
| Sum of contributions | +0.640 | ||||||
| Claim-check penalty | 0.000 | ||||||
| Total, as published | 0.640 | ||||||
Spread is the highest minus the lowest judge answer. marks a spread above 0.40: the judges disagree, and the story is marked contested.
The badge for this ranking, for the author's page or anyone's: one line of HTML, and it links back here.
<a href="https://rubric.hrih.si/editions/2026-10-30/17/"><img src="https://rubric.hrih.si/badge/2026-10-30/17.svg" alt="Ranked #17 on Rubric, 30 Oct 2026" width="245" height="28"></a>Claim check
Claim check: 1 matches source · 6 no source given · 1 couldn’t check. Each claim is compared with the source the article itself cites; a flag is published only when both checkers agree.
No source givenNumber
In headless Chromium, every script of Tab Widgets was loaded and evaluated within about 100 ms of opening the tab, yet the widgets did not appear until about 380 ms.
The article gives no link or citation for it.
The article says “Every script was loaded and evaluated within about 100 ms of opening the tab, yet the widgets didn't appear until about 380 ms”
The source says No source to compare with.
No source givenNumber
React only reveals suspended content once 300 ms have passed since a fallback last appeared or was replaced anywhere on the page (FALLBACK_THROTTLE_MS).
The article gives no link or citation for it.
The article says “React only reveals it once 300 ms have passed since a fallback last appeared or was replaced anywhere on the page (FALLBACK_THROTTLE_MS in React's source”
The source says No source to compare with.
Matches sourceQuote
The React Suspense documentation says suspended content is revealed at most once every 300ms, measured from the last reveal.
The cited source says the same thing.
The article says “at most once every 300ms, measured from the last reveal”
The source says “React reveals suspended content at most once every 300ms, measured from the last reveal”
Source cited by the article: react.dev/reference/react/Suspense
Couldn’t checkGeneralization
React's maintainers have kept the reveal throttle as a fixed heuristic despite a long GitHub discussion about making it configurable.
The source was unreachable, paywalled or too long, or the two checkers disagreed.
The article says “There's a long discussion on GitHub about making it configurable, and so far React's maintainers have kept it as a fixed heuristic”
The source says No passage could be compared.
Source cited by the article: github.com/react/react/issues/31819
No source givenCausal conclusion
A lazy component always suspends the first time it renders, even if its code has already loaded, and calling import() beforehand does not prevent this.
The article gives no link or citation for it.
The article says “A lazy component always suspends the first time it renders, even if its code has already loaded”
The source says No source to compare with.
No source givenNumber
Preloading the start page's widgets and waiting up to 100 ms before rendering cut widget appearance in headless Chromium from about 380 ms to about 95 ms.
The article gives no link or citation for it.
The article says “In headless Chromium, widgets went from about 380 ms to about 95 ms”
The source says No source to compare with.
No source givenBenchmark result
In Chrome on Windows, the mean time to first widget content fell from 540 ms to 298 ms (−242 ms) after the fix, and 85% of widget content from 540 ms to 336 ms.
The article gives no link or citation for it.
The article says “First widget content visible 540 ms (all at once) 298 ms −242 ms”
The source says No source to compare with.
No source givenNumber
Moving luxon out of the 283 KB main file made no measurable difference to when anything appeared.
The article gives no link or citation for it.
The article says “Moving it out made the 283 KB main file noticeably smaller, but it made no measurable difference to when anything appeared”
The source says No source to compare with.
Also covered by
No other coverage was clustered with this story.
Elsewhere
Elsewhere: HN 16 pts, front page
Recorded for context only, checked 30 Oct 2026, 05:47 UTC. It played no part in the ranking.