The AI cost of JavaScript frameworks
Comments on “The AI cost of JavaScript frameworks”
Claim-checked. Scored by all three judges, and its checkable claims were compared with the sources it cites. How far stories are checked
Nolan Lawson benchmarked 12 JavaScript frameworks by having Claude Code (Opus 5.5) build the same Pokémon app 3–5 times each. Median cost ran from $2.67 for Hono+htmx to $4.97 for Angular, which also wrote the most code (about 2,000 lines versus 1,370). Lighthouse performance and accessibility scores were near ceiling everywhere; JavaScript shipped ranged from 0 KiB (Astro) to 142 KiB (Next.js). Caveats: one content-heavy app, high run-to-run variance, and Lighthouse favors multi-page sites.
Why it ranked
No. 12 of 110 with a score of 0.65. The panel rated it highest on new information (0.89) and substantiated (0.80), lowest on significance (0.51). Placed No. 12, No. 22 by score alone: the placement terms moved other stories past it.
- AI judgeJudge 2claude-haiku-5-5
- A reproducible benchmark of JS frameworks built by coding agents with cost, Lighthouse and LOC data; methodology is careful with stated caveats, but a single app and small sample limit generality.
- AI judgeJudge 3gpt-5.6-luna
- A reproducible, data-rich benchmark of AI-built apps across JavaScript frameworks, with methods, repeated runs, variance, caveats, and actionable performance and cost comparisons. Its scope is limited, but the evidence and practical relevance are strong.
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.65total under rubric v2.3
- Significance0.51
- Reader interest0.76
- Audience breadth0.65
- Practical relevance0.71
- Substantiated0.80
- Technical depth0.79
- New information0.89
- Counts against: Promotional0.05
- Counts against: Overclaim0.27
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.56 | 0.35 | 0.62 | 0.51 | 0.27 | +0.24 | +0.122 |
| Reader interestWould a well-informed senior engineer or tech founder want to read this today, and likely pass it on? | 0.67 | 0.75 | 0.86 | 0.76 | 0.19 | +0.26 | +0.198 |
| Audience breadthHow many people who build technology does it concern? | 0.67 | 0.60 | 0.68 | 0.65 | 0.08 | +0.13 | +0.084 |
| Practical relevanceHow useful is it to someone who builds software or tech products? | 0.76 | 0.65 | 0.74 | 0.71 | 0.10 | +0.22 | +0.157 |
| 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.60 | 0.82 | 0.80 | 0.38 | +0.05 | +0.040 |
| Technical depthHow technically substantive is it? | 0.92 | 0.70 | 0.74 | 0.79 | 0.22 | +0.05 | +0.039 |
| New informationDoes it contain information absent from the stories covered in the last 7 days (list provided)? | 0.89 | 0.80 | 0.97 | 0.89 | 0.17 | +0.05 | +0.044 |
| 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.06 | 0.05 | 0.03 | 0.05 | 0.03 | −0.19 | −0.009 |
| OverclaimDo the headline or conclusions claim more than the body supports? | 0.27 | 0.35 | 0.18 | 0.27 | 0.17 | −0.11 | −0.029 |
| Sum of contributions | +0.647 | ||||||
| Claim-check penalty | 0.000 | ||||||
| Total, as published | 0.647 | ||||||
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-29/12/"><img src="https://rubric.hrih.si/badge/2026-10-29/12.svg" alt="Ranked #12 on Rubric, 29 Oct 2026" width="245" height="28"></a>Claim check
Claim check: 1 matches source · 5 no source given. Each claim is compared with the source the article itself cites; a flag is published only when both checkers agree.
No source givenNumber
In the benchmark, Hono+htmx had the lowest median cost per run at $2.67, while Angular had the highest at $4.97.
The article gives no link or citation for it.
The article says “Hono+htmx $2.67 (2.23–3.19”
The source says No source to compare with.
No source givenCausal conclusion
SvelteKit agents read the SvelteKit v3 migration guide in every run, likely because SvelteKit v3 is too new to be in Opus 5.5's training data.
The article gives no link or citation for it.
The article says “the agents read the SvelteKit v3 migration guide in every run, likely because it’s too new to be in Opus 5.5’s training data”
The source says No source to compare with.
No source givenNumber
Next.js shipped the most JavaScript, with a median of 142 KiB transferred, while Astro shipped 0 KiB.
The article gives no link or citation for it.
The article says “Next.js 142 KiB (136–143”
The source says No source to compare with.
Matches sourceCausal conclusion
Angular failed to create a working app in two runs because the agent built an SSR app that rejected non-localhost, despite instructions saying the app would be behind a reverse proxy.
The cited source says the same thing.
The article says “in 2 runs, the agent built an SSR app that rejected non-localhost (even though the instructions explicitly said that the app would be behind a reverse proxy”
The source says “Assume a reverse proxy will sit in front of your server in production and handle HTTPS, HTTP/2 and compression. Don't implement any of those”
Source cited by the article: github.com/nolanlawson/agent-framework-benchmark/blob/cfb0cf176f16014fd00d12ca875777a2e7f2e762/template/SPEC.md
No source givenNumber
Hono+htmx can do roughly the same thing as Angular with about 70% of the code.
The article gives no link or citation for it.
The article says “Hono+htmx can do roughly the same thing as Angular with ~70% of the code (and faster, to boot”
The source says No source to compare with.
No source givenCausal conclusion
Next.js's wide LCP variance is explained by one app avoiding lazy-loading images while the other four did lazy-load them.
The article gives no link or citation for it.
The article says “the wild variance in the Next.js numbers can be explained by the fact that one app avoided lazy-loading images and the other four didn’t”
The source says No source to compare with.
Also covered by
No other coverage was clustered with this story.
Elsewhere
Elsewhere: HN 3 pts, front page
Recorded for context only, checked 29 Oct 2026, 05:47 UTC. It played no part in the ranking.