If you have been following the Magento news for the last years, you have noticed that PWA is the future! However, recently, Willem Wigman shook the community by releasing his Hyva Theme alternative. So, now this is the future. Or is it still PWA?
Destroying the buzzword PWA
You might almost believe that the P in PWA stands for Pingpong, the way that the word is bouncing up and down in its meaning and how its using used and misused. It's not a word anyway, it is an acronym: Progressive Web Apps refers to a set of features, including the Add-To-Dashboard feature that makes websites behave more like native apps.
To add this Add-To-Dashboard feature to a native Magento frontend, you only need to add a
manifest.json file. So turning a traditional Magento shop into a PWA usually takes about 1 minute.
It is just a word
I don't really care too much about this confusion of what PWA refers to. PWA has become a different concept than its original meaning, face it. If the majority of the ecosystem refers to a Vue app or React app as a PWA, I'm fine with that. (I've actually been partially responsible for this confusion.) In this blog, I'll often refer to a Vue or React app as a PWA, or the other way around. And I'm leaving AngularJS unfairly out of this, sorry Damien.
Back to the main topic here: PWA technology is said to be the future (with offline, push notifications, geolocation and much more). Hence, React and Vue apps were pushed into our faces. Even worse, they were pushed into our faces as being the future, which we maybe misinterpreted as the only future.
PWA: A hype
PWA has been a hype. And some people have seen this hype become a disappointment. The number of times that I hear developers grewl of Magento PWA Studio, DEITY and Vue Storefront is quite overwhelming. And then I hear that they have been playing with it for less than 6 months, which is kind of shorter than the period they grewled over Magento 2 when it first came out - so come on.
It is a hype. But I do believe Hyva is a hype too. And people could get disappointed with Hyva as well.
For a Magento backend developer, shifting from PHP to Node (with React or Vue) is a big step. You suddenly need to become experienced in a different programming language. It took me 5 years to master PHP (and I still sucked at it after 5 years). It took me less time to dive into Node, because I became more Jisse.
The promise of Hyva
However, I'm not sure if Hyva is technically superior to Magento PWA Studio or Vue Storefront. Or the opposite ... I believe that - with all these frontends - the same benchmarks can be met, the same Lighthouse score, the same frontend experience.
Something that you are used to
And actually comparing Hyva and Luma, I would say that Hyva is way-cleaner than Luma, because Knockout is dead and AlpineJS is cool, because Magento core developers messed up the Luma CSS entirely and Tailwind is ... hmm.
I like the Hyva stack, but I dislike Tailwind. It is personal.
Why I think Tailwind sucks
I'm personally not a fan of the utility classes of Tailwind. I think they feel similarly like what Bootstrap felt like in its earlier years. I want the CSS to be skinny, true. But I want my HTML to be semantical and not cluttered with utility classes. And
@apply could overcome this, but simply leads me further away from an ideal solution.
Simply put, I prefer another CSS approach. And I firmly believe that anyone dealing with frontend technology should developer their own preference. Like Bootstrap, dislike Tailwind. Like Tailwind, dislike Bootstrap. Make up your mind.
Back to Hyva
Because I like everything else about Hyva (including its creators, kiss-kiss), I hope that we are going to see more freedom in Hyva (or derivatives) where the reset is there, AlpineJS is there, but an alternative CSS approach could be used.
Magento PWA Studio is not complex
Likewise, Magento PWA Studio is not complex. I have been hearing this repeatedly from the Magento community. But in the recent 4 years, I have played quite a bit with React. And what Magento is doing within Venia and Peregrine is not rocket-science. To make PWA Studio work for a community of frustrated Magento developers is magic, but to make PWA Studio work for React developers is peanuts: They are already happy with what is there.
While Magento is going the headless way, realize that Magento developers will find PWA difficult, but PWA developers will find Magento difficult. Exactly by going the headless way, you can separate those teams.
Is the Magento community ready for PWA?
I completely understand that for some people Magento PWA Studio (or Vue Storefront or DEITY) have been disappointing. But for others, the overwhelming frontend stack of Magento has been disappointing and Hyva is not fixing that entirely. Therefore, I believe that each frontend technology that we have is there for a reason, it was created for a specific need.
Multiple frontends are the future
The ecosystem is splitting up - when looking at it from the frontend view: This sounds like a dramatic change. However, it doesn't mean that the community is splitting up. I'm personally envisioning a future where there is one backend (Magento) and multiple frontends based on multiple technologies, so that each agency will pick that frontend that is prefers.
Three frontends for the React developers, one for the Vue developers, two for the Magento developers. But one backend rules them all. And with GraphQL binds them.