October 28, 2025
Tiny bundles, giant brawls
I Built the Same App 10 Times: Evaluating Frameworks for Mobile Performance
Svelte fans swoon, React skeptics seethe, and a scroll bug steals the show
TLDR: New frameworks like Marko, SvelteKit, Qwik, and Nuxt load nearly instantly on mobile, with Marko shipping the smallest files by far. The crowd cheers Svelte’s “feels right” vibe, debates mobile-first dogma, asks for React Native, and roasts a hilarious horizontal scroll fail.
One engineer built the same kanban app ten times and found Marko, SolidStart, SvelteKit, Qwik, and Nuxt were near‑instant on phones (35–39ms to show content) vs Next.js at ~467ms. The real shocker: Marko ships tiny bundles (28.8 kB compressed), while Next.js hauls 176.3 kB. Qwik avoids traditional hydration (waking up client code) and Nuxt proves Vue can compete. React and Angular didn’t show a path to similar results.
The comments stole the show. A Svelte dev gushed it “just feels right,” and the love poured in. Then came pushback: “The web isn’t only mobile,” warning that mobile‑first zeal breeds forced phone apps and bad desktop. React folks asked for a React Native cameo. Another roasted a horizontal scroll bug on mobile—epic irony for a performance post. Practical readers asked if Marko can run as plain static files. Beneath the jokes sits a simple split: tiny bundles and multi‑page sites that load per page vs single‑page apps that front‑load everything. Pick speed for parking lots; prepare for a culture war in the comments.
Key Points
- •The author built 10 identical kanban apps to compare mobile web performance across major meta‑frameworks.
- •Next‑gen frameworks (Marko, SolidStart, SvelteKit, Qwik) achieved near‑instant FCP (35–39 ms), far faster than Next.js at 467 ms.
- •Bundle size is the key differentiator; Marko delivered the smallest bundles, while Next.js was largest in tests.
- •Qwik City’s resumability removes traditional hydration, enabling instant interactivity even with larger client-side code.
- •MPA frameworks stay lean by shipping minimal per‑page JS; SPA frameworks front‑load routing/runtime, raising baseline costs. Vue/Nuxt can compete; React/Angular show no path to similar results in this study.