Luma to Hyvä Migration: Cost, Timeline and a Step-by-Step Checklist

Moving a Magento 2 store from Luma to Hyvä is one of the most effective performance upgrades you can make. Here is what it really involves, what drives the cost and how to plan it without surprises.

Hyvä has become the default answer to a common question: “How do we make our Magento 2 store fast on mobile?” It replaces Luma’s heavy RequireJS and Knockout stack with a lean frontend built on Tailwind CSS and Alpine.js. The result is usually far less JavaScript and much better Core Web Vitals.

But a Hyvä migration is a real project, not a theme switch. In this guide I explain what it involves, what drives the cost, how long it takes and how to avoid the mistakes I see most often.

Why stores move to Hyvä

  • Speed on real devices. Less JavaScript means faster rendering and better Interaction to Next Paint on mid-range phones.
  • Better Core Web Vitals. This helps both SEO and conversion rate.
  • Easier frontend development. Tailwind and Alpine are simpler to work with than Knockout UI components, so changes take less time.
  • A growing ecosystem. Many popular extension vendors now ship Hyvä-compatible versions.

Is Hyvä right for your store?

Hyvä is a strong fit when:

  • Most of your traffic is mobile
  • Your Core Web Vitals are failing even after caching and image work
  • You plan to stay on Magento 2 / Adobe Commerce for several more years
  • Your design is due for a refresh anyway

It may not be the right moment when you are planning to re-platform within a year, or when the store depends on many extensions that have no Hyvä support and would all need custom work.

Before you decide, check Hyvä’s current licensing and product options on their official website. Their offering (theme, checkout, UI library and enterprise options) has changed over time, so plan with up-to-date information.

What drives the cost

Every quote you get should be based on these factors:

  1. Number of third-party extensions with a frontend. Each one needs a Hyvä compatibility module, either from the vendor, the community, or custom-built. This is usually the biggest variable.
  2. Custom frontend features. Product configurators, custom sliders, size guides, B2B quick-order forms and similar features must be rebuilt in Alpine.js.
  3. Checkout choice. You can keep the Luma checkout (it works through a fallback), use Hyvä Checkout, or use another one-step checkout. Each has different effort and risk.
  4. Design. A pixel-perfect copy of the old design is often more work than a modernised design built on Hyvä defaults.
  5. Number of store views and languages. More store views means more testing.

A realistic timeline

For a typical mid-sized store, a migration often runs in these phases:

Phase What happens Typical duration
Audit Extension inventory, custom feature list, checkout decision 1–2 weeks
Base theme Header, footer, category, product, CMS pages 3–6 weeks
Extensions Compatibility modules and custom rebuilds 2–6 weeks
Checkout Configuration or integration 1–4 weeks
QA and launch Cross-device testing, tracking checks, SEO checks 1–3 weeks

Smaller stores with few extensions can go much faster. Large multi-store setups take longer. Be careful with any quote that does not start with an extension audit.

Step-by-step migration checklist

1. Inventory everything

  • Export your module list and mark each module that affects the frontend
  • Check each vendor for an official Hyvä compatibility module
  • List all custom templates and JavaScript in your current theme

2. Decide on the checkout

The checkout is where revenue happens, so be conservative. Many teams launch Hyvä on catalog pages first and keep the existing checkout, then upgrade the checkout in a second phase.

3. Build on a staging environment with production data

Use an anonymised copy of the real catalog. Edge cases like products with 40 options or very long names only show up with real data.

4. Rebuild, do not port

Do not try to translate Knockout components line by line. Rebuild the feature in the simplest Alpine.js way that meets the requirement.

5. Protect your tracking

GA4 events, Google Ads conversions, Meta pixel and consent management are often tied to Luma JavaScript. List every tracking event and test each one on the new theme before launch.

6. Protect your SEO

  • Keep URLs, canonical tags, structured data (Product, BreadcrumbList) and hreflang identical
  • Compare rendered HTML of key templates before and after
  • Run a crawl on staging and compare with production

7. Measure after launch

Compare Core Web Vitals, conversion rate, add-to-cart rate and average order value for the four weeks before and after launch. Real-user data in Search Console takes about 28 days to fully update.

Common mistakes

  • Starting without an extension audit. This is how budgets double.
  • Launching on a Friday or before a sale. Leave room for fixes.
  • Forgetting the admin side. Some extensions inject frontend widgets through CMS blocks or page builder content that also need checking.
  • Ignoring performance after launch. Hyvä gives you a fast base, but a dozen marketing scripts in Google Tag Manager can still slow it down.

Frequently asked questions

Can I migrate to Hyvä without changing my design?

Yes, but a strict 1:1 copy usually costs more. A light redesign that uses Hyvä’s components is often faster and better for users.

Will Hyvä fix all my speed problems?

It fixes the frontend side. If your full page cache, database or hosting is slow, you still need to fix those. See my list of 12 common causes of a slow Magento 2 store.

Does Hyvä work with Adobe Commerce?

Yes, Hyvä works with both Magento Open Source and Adobe Commerce. Check B2B and specific Adobe features against Hyvä’s current compatibility documentation.

Planning a Hyvä migration?

I help teams plan and deliver Luma to Hyvä migrations, starting with an extension audit so you get a realistic budget before any code is written. See my Magento 2 and Hyvä service or request a migration estimate.