Qwik 2.0 Deletes HTML Comments to Defend Resumability, and the Bundle Pays for It
Framework choice is now a measurable tradeoff between bytes and startup execution: Qwik 2.0 pays more transfer to remove runtime markers, while Remix 3 and SvelteKit 3 subtract weight in different places. Streaming is becoming a platform expectation, so the cost each framework accepts matters more than its pitch.
Qwik 2.0 RC landed on npm at 15:49 UTC on October 1, 2026, and within seven hours SvelteKit 3 and Remix 3.0.0 followed. The release notes spend their most interesting words on deletion: v1 carried resumability state inside HTML comments, with markers like <!--qv--> for component boundaries and <!--t=8--> for signal-driven text nodes. Those markers, the Qwik team says, required one ordered pass to write, taxed CPU and memory, slowed reactive updates, blocked out-of-order streaming, and let a slow fetch stall everything below it.
v2 moves that data into two script blocks at the end of the document, qwik/state and qwik/vnode, and body comments drop from 60 to 0. Structural payoffs include out-of-order streaming as an experimental feature, updates that work from in-memory vnodes instead of reparsing HTML, and a scheduler that yields every 15 ms so long tasks do not block interaction. Bundle size is the visible cost: JavaScript that has to run before load falls from 59 KB to 9 KB, but total transferred bytes go up. Qwik's position is that startup JS matters more than total bytes; a worse-network scenario is the obvious countercase.
Qwik v1's marker format contradicted its own premise: a framework promising less browser work depended on HTML that had to be written in one ordered pass. Moving state to trailing scripts removes that contradiction and shifts the cost to upfront bytes.
Same-day releases show three competing answers to where framework weight should live: Qwik removes runtime markup, Remix removes the React binding, SvelteKit removes runtime through compilation. The shared question is where the weight sits.
An explicit tradeoff is more useful than benchmark charts. Qwik's claim that startup JS matters more than total bytes is testable, and a weak-network environment is the clear counterexample.