Hyvä vs Luma — Why We Stopped Recommending Luma to Our Clients
After years of building on both, here is the honest comparison every Magento store owner needs to read.
Luma PageSpeed
Hyvä PageSpeed
faster load time
less JavaScript
For years, Luma was just what you used. It shipped with Magento 2, it worked well enough, and every developer knew it. When a client asked for a Magento store, you built it on Luma. That was the default.
That changed for us a while back. Not because Luma suddenly got worse — it didn’t. It’s roughly the same as it’s always been. What changed is that we now have a direct comparison. We’ve built stores on both, migrated stores from one to the other, and measured the results. And the gap is not small.
This is our honest take after building on both. No fluff, no agenda — just what we’ve seen in practice.
What Actually Is the Difference?
Both Luma and Hyvä are frontend themes for Magento 2. They control how your store looks and how it behaves in the browser. The backend — your products, orders, customers, pricing — is identical regardless of which theme you use.
The difference is entirely in the technology they’re built on.
LUMA — THE OLD STACK
- RequireJS for module loading
- KnockoutJS for UI components
- LESS CSS + XML layouts
- 400KB+ JavaScript bundle
- PageSpeed ~20 to 40
- Core Web Vitals usually red
- Slow to customise
- Hard to debug
HYVÄ — THE MODERN STACK
- No RequireJS needed
- Alpine.js for UI components
- Tailwind CSS utility classes
- ~160KB JavaScript bundle
- PageSpeed ~85 to 96
- Core Web Vitals usually green
- Fast to customise
- Clean, readable code
RequireJS and KnockoutJS were reasonable choices in 2014 when Magento 2 was being architected. In 2026, they’re the main reason Magento stores score so poorly on PageSpeed. They load a large amount of JavaScript upfront — even on pages where none of it is needed.
The Numbers We’ve Seen in Practice
Theory is one thing. Here’s what we’ve actually measured on real store migrations.
The third row is the one that often surprises clients — developer hours per sprint dropped nearly in half after migrating to Hyvä. Building on Luma involves layers of abstraction that slow everything down. Hyvä code is just PHP, Alpine.js, and Tailwind. It’s fast to write and easy to reason about.
The Full Comparison — Every Factor That Matters
| Factor | Luma | Hyvä |
|---|---|---|
| JavaScript framework | KnockoutJS (2010) | Alpine.js (modern) |
| Module loader | RequireJS (heavy) | None needed |
| CSS approach | LESS + XML layouts | Tailwind CSS |
| Avg PageSpeed score | 20–40 | 85–96 |
| JS bundle size | 400KB+ | ~160KB |
| Core Web Vitals | Usually fails | Usually passes |
| Time to build a component | 1–2 days | 2–4 hours |
| Debugging difficulty | High — many layers | Low — clean code |
| Extension compatibility | All extensions | Most — growing |
| Migration cost | None (default) | Requires investment |
| SEO impact | Penalised by speed | Boosted by speed |
| Mobile performance | Poor | Excellent |
The One Area Where Luma Still Wins
Extension compatibility. Luma has been around since Magento 2 launched. Every extension in the ecosystem was built for Luma. When you install a third-party module on a Luma store, it works. Full stop.
Hyvä is different. When it launched in 2021, most extensions didn’t support it. You needed compatibility modules — extra work, extra cost, extra risk.
In 2026 this situation is much better. Most major extension vendors now ship Hyvä-compatible versions. But “most” is not “all.” Before any migration, you need to audit your extension list. This step is not optional.
Honest caveat: If your store relies on a niche extension that hasn’t been updated for Hyvä, migration becomes more complex and expensive. Always audit your extension list first. We do this for every client before quoting a migration.
When to Stay on Luma
We don’t recommend Hyvä in every situation. Here’s when Luma might still be the right call:
- Your store is performing well and you have no budget for a migration
- You depend on extensions that don’t yet have Hyvä compatibility
- You’re planning to move off Magento entirely within 12 months
- Your store is primarily B2B with low public traffic — less urgency on PageSpeed
When Hyvä is the Clear Choice
- You’re starting a new Magento 2 project — always start with Hyvä
- Your PageSpeed score is below 50 and it’s hurting your SEO
- You’re planning a redesign anyway — migrate at the same time
- Your mobile conversion rate is low — Hyvä’s performance gains hit hardest on mobile
- Your development team is complaining about how painful Luma is to work with
For all new Magento 2 projects we build at CodeAtoZ, Hyvä is the default. We don’t even quote Luma anymore unless a client specifically requests it and has a clear reason. The performance difference is too significant to recommend otherwise.
What Does a Migration Actually Cost?
This is the question everyone wants answered. There’s no single number because it depends entirely on your current setup — how many extensions, how much custom frontend work, how complex your checkout is. But here’s a realistic guide:
| Store complexity | Typical timeline | Main cost driver |
|---|---|---|
| Simple store, standard extensions | 2–4 weeks | Template rebuild |
| Medium store, some customisation | 4–8 weeks | Custom components + extensions |
| Complex store, heavy customisation | 8–16 weeks | Extension compatibility + rebuild |
The investment is real. But consider what you’re getting: a store that ranks better on Google, converts better on mobile, and is significantly cheaper to maintain and develop on going forward.
Thinking About Migrating to Hyvä?
We’ll do a free technical assessment — audit your extensions, estimate the migration effort, and give you an honest answer on whether it makes sense for your store right now.