Skip to content

Expert Answers to Your Magento, Shopify & Shopware Questions

Vendor-neutral, engineer-written explanations. Clear definitions first, then practical steps with real examples — no fluff.

Stagebit builds and maintains stores on Magento, Adobe Commerce, Shopify, Shopware, and Laravel, and this library holds the questions our own engineers get asked most often on each platform.

Why is Hyvä faster than Luma?

SB
Written by Stagebit Engineering Team
Updated August 2026 4 min read Verified by engineers

Hyvä is faster than Luma because it removes the layers of JavaScript and CSS tooling that Luma depends on and replaces them with a much smaller, purpose-built stack. Luma renders pages using RequireJS to load modules, Knockout.js to handle interactive UI components, and a LESS-based stylesheet system that ships one large, shared CSS bundle. Hyvä replaces all three with Alpine.js for interactivity and Tailwind CSS compiled ahead of time, which means far less code has to travel to the browser and get parsed before the page becomes usable.

Quick answer

Hyvä loads faster than Luma because it eliminates RequireJS bundling, drops Knockout.js’s client-side view-model rendering, and swaps Luma’s LESS output for a Tailwind CSS build that only ships the classes a page actually uses. Fewer scripts to fetch, less JavaScript to execute before the page responds to input, and a smaller CSS payload add up to a measurably lighter Magento 2 frontend, particularly on mobile connections where every extra request costs real time.

The architecture difference, layer by layer

LayerLumaHyvä
JavaScript loadingRequireJS module loader, often resolving dozens of dependencies per pageAlpine.js, a small runtime with no module resolution step
UI interactivityKnockout.js view-models bound and re-rendered on the clientServer-rendered HTML enhanced in place, no client-side re-render step
CSSLESS compiled into one large shared stylesheet across the whole themeTailwind CSS purged at build time to include only the classes actually used
Static asset buildsetup:static-content:deploy, which grows slower as themes and locales are addedTailwind’s CLI build, which stays fast regardless of theme count

RequireJS versus Alpine.js

Luma uses RequireJS to load JavaScript modules on demand, but that resolution process still means the browser has to fetch, parse, and wire up a dependency tree before a page component becomes interactive. Alpine.js works differently. It attaches behavior directly to markup that the server already rendered, so there is no separate module graph to resolve. Less resolution work up front means less delay before a customer can actually click, filter, or add to cart.

Knockout.js versus server-rendered HTML

Knockout.js re-renders parts of the page in the browser using JavaScript view-models. That is useful for highly dynamic UI, but it adds a real cost: the browser has to run JavaScript to produce HTML that Magento could have rendered on the server in the first place. Hyvä renders that HTML server-side with PHP and only reaches for Alpine.js where genuine client-side interactivity is needed, such as toggling a mobile menu or updating a mini cart count. This cuts down on the amount of JavaScript execution blocking the main thread during page load.

LESS versus Tailwind

Luma’s LESS setup compiles into a single shared CSS file used across the whole storefront, which grows heavier as more modules and customizations are added over time. Tailwind is a utility-first framework, and Hyvä’s build process purges unused classes, so the shipped CSS reflects only what a given page actually needs. Smaller CSS means the browser spends less time parsing style rules before it can paint the page, which directly affects Largest Contentful Paint.

Fewer moving parts to deploy

This difference also shows up outside the browser. Luma’s static content deployment step slows down as more themes, locales, and customizations pile up, which becomes a real drag on release cycles for teams shipping frequent updates. Hyvä’s Tailwind build stays fast regardless of store complexity, which is a maintenance benefit as much as a performance one.

Why this matters beyond a Lighthouse score

Core Web Vitals are now a ranking factor, and Largest Contentful Paint and Interaction to Next Paint are both directly affected by how much JavaScript a page has to execute before it responds to input. A lighter frontend does not just look better on a performance report. It changes how quickly a real visitor on a mobile connection can actually browse and check out, which is where the SEO and conversion benefits of a faster theme actually come from, not from the score itself. Stores comparing Magento performance work across real projects tend to see this most clearly on mobile traffic, where every additional blocking script has an outsized effect.

If you’re evaluating whether a Hyvä migration is worth the effort for your specific store, the honest answer depends on how JavaScript-heavy your current Luma build already is and how much custom Knockout.js logic you have layered on top of it. A store running mostly default Luma components will see a smaller gain than one running years of accumulated third-party widgets, since there is simply more overhead to remove.

Was this answer helpful?

Your feedback helps us improve our answers.

Still need help?

Talk to our Hyvä experts

We build Hyvä storefronts for Magento and Adobe Commerce brands that want Alpine.js speed without losing the flexibility of a full Magento backend.

Talk to Hyvä Experts