Case study: Mocha vs a Next.js twin
The method: one luxury hospitality site — the sable-ridge seed, the same content and the same images — rendered by two stacks on the same machine. On one side the Mocha SSR engine (Node/hapi/libSQL, zero client JS, no build step); on the other an idiomatic Next.js App Router twin. Every figure below is the actual measured output of node bench/measure.mjs, not an estimate.
The result, where Mocha wins decisively: it ships 0 KB of client JavaScript against the twin's 466 KB; the home page makes 6 requests against 13; and it has no build step, where the twin needs a 6.75 s next build before it can serve. The installed footprint tells the honest story too — 75 MB of node_modules against the twin's 313 MB, even though the engine bundles native sharp, libSQL, and argon2 binaries.
We report the losses plainly. The twin's minified CSS is 4.8 KB against the engine's 13.4 KB hand-written skin, and next/image WebP beats the engine's JPEG renditions on raw image bytes. TTFB is a wash on localhost. Reproduce every number yourself: build the twin, then run node bench/measure.mjs.