← Back to blog

Hyvä - Guides

What Is the Hyvä Theme for Magento, and Why It Matters

September 21, 2026 - by Alexandru-Manuel Carabus

Hyvä is a Magento 2 frontend theme that replaces the view layer with Alpine.js and Tailwind. What it changes, why it is fast, what it costs now that it is free, and what it does not do.

An editorial illustration of two objects with the same square footprint side by side, a thick heavy navy block casting a deep shadow and, beside it, a single thin plate floating above the surface on a soft cyan glow with one small orange marker, symbolizing the same storefront carrying far less weight on Hyvä.

Hyvä is a frontend theme for Magento 2. It replaces the layer that draws your storefront with one built on Alpine.js and Tailwind CSS, and leaves the rest of Magento exactly as it is. That is the whole thing. The rest of this article explains what that means in practice, why the result is fast, what it costs now, and what it does not fix.

What it replaces, precisely

Magento’s default theme, Luma, is built on technology from about fifteen years ago. Hyvä takes four things out and puts two in.

  • Knockout.js, used for data binding and interface components, is replaced by Alpine.js.
  • RequireJS, the JavaScript module loader, is removed entirely. Nothing replaces it.
  • jQuery and its widget library are removed. What remains is plain JavaScript.
  • LESS, the CSS preprocessor, is replaced by Tailwind.

What stays untouched matters more than what leaves. Layout XML stays. Blocks and view models stay. The .phtml templates stay. The entire backend stays: dependency injection, plugins, observers, cron, indexers, the admin panel, the REST and GraphQL APIs. Hyvä is not a rewrite of Magento. It is a rewrite of the last layer, the one your customer sees.

Why it is fast

It is not magic and it is not a clever optimisation. It is the absence of JavaScript.

A Luma store sends the browser a large amount of JavaScript before anything useful can be drawn, because the interface itself is built in JavaScript. The browser has to download, parse and execute all of it to find out what to display. On a mid-range phone the execution is the expensive part, not the download.

Hyvä renders the page on the server and ships JavaScript only for the parts that actually move. In one migration published by Hyvä, JavaScript weight fell from roughly 350KB to 45KB, CSS from 300KB to 35KB, and requests per page from between 55 and 70 down to between 12 and 18. Same products, same Magento.

What it costs, now that it is free

This is the most out-of-date information on the internet about Hyvä, so it is worth stating plainly.

Since 10 November 2025, the Hyvä theme is free and open source under the OSL-3.0 and AFL-3.0 licences. The code is on GitHub. The old commercial licence of one thousand euro per domain no longer exists, but it still appears in articles published after the change, including on agency websites.

What remains commercial is the products around the theme. Hyvä UI, the component library, is 250 euro per store. Hyvä Checkout, which is a completely separate checkout, is one thousand euro per Magento installation. Hyvä Commerce and Hyvä Enterprise are annual subscriptions at three thousand and seven and a half thousand euro respectively.

In practice: the theme itself is no longer a budget line. Checkout is, and it is the most commonly forgotten line in a migration estimate.

Who uses it, and what happens to your extensions

Hyvä is no longer a bet. At the time of the November 2025 relicensing, the project reported more than six thousand customers and over seven thousand live online stores. For a Magento frontend theme, that is an installed base large enough to sustain vendors, developers and documentation.

The practical question is not adoption though, it is your extensions. The rule is simple and it splits along exactly the line described above. An extension that only touches the backend, your ERP connector, your tax engine, an import tool, does not care what theme you run and keeps working. An extension that renders something on the storefront was built for Luma markup and needs either a compatible version from the vendor or a compatibility module.

Hyvä maintains a public tracker for precisely this question, holding a little under a thousand entries, searchable by vendor name. It repays careful reading, because a green label does not always mean every feature of the extension was ported. We covered how to read it properly in our guide to Hyvä extension compatibility.

The number of frontend extensions you carry is, in practice, the best predictor of how long a migration takes. Not catalogue size, not order volume.

What Hyvä is not

Four common confusions, all of them expensive.

It is not headless and it is not a PWA. Pages are rendered by Magento, on the server, as before. There is no second frontend project, no second team, and no API between them for anyone to blame. For most stores that is good news.

It is not a performance guarantee. In an article on Hyvä’s own site, a real-user monitoring specialist states that about half of the websites using Hyvä still struggle with Core Web Vitals. Hyvä fixes the frontend. If your server responds in three seconds you will have a beautiful slow store. We wrote separately about why a Hyvä store can still be slow.

It is not a checkout. Magento checkout stays as it was until you pay separately for Hyvä Checkout, adopt the community open-source React checkout, or keep the old checkout on the Luma theme through a fallback mechanism.

It is not a design. The default theme is deliberately blank. Hyvä does not even publish a Figma file for it. What you see in the demo is a starting point rather than a destination, and we covered why Hyvä stores need not look alike separately.

How to tell whether you are already on it

You can check this in two minutes without asking anyone.

Open your store, right click, and view the page source. Search the page for the text x-data. That is the attribute Alpine.js uses to mark its components and it appears throughout a Hyvä storefront. Then search for requirejs. If you find it, Luma is still present somewhere, at least on that page.

If you have server access, the more reliable check is to list installed packages and filter for hyva. The presence of packages in the hyva-themes namespace also tells you which compatibility modules you already have.

One common and confusing case: stores that are on Hyvä for product and category pages but still on Luma at checkout or in the account area. That is a partial migration, it is a legitimate strategy, and it explains why some pages are fast and others are not.

Who it suits, and who it does not

It suits you if you sell mostly on mobile, if your frontend has been patched for years and every change takes longer than the last, or if you are already paying for larger servers to compensate for a slow store.

It suits you less if you launched recently on a clean, fast theme, if your traffic is mostly B2B and logged in, where a few hundred milliseconds changes nothing, or if your real problem is server response time. In that last case, migrating the theme is the wrong fix for the problem you have.

If you have decided it does make sense, the migration process, the timelines and what breaks are described separately.

Book a free strategy call

Not sure whether Hyvä solves your problem or just moves it? We will look at your store and tell you where the time actually goes, before recommending anything. Book a free strategy call.