With Yehor Shytikov, Software Engineer at THE COFFEE BEAN & TEA LEAF, we talk about how Progressive Web App will change the eCommerce sector.
You worked for some time with Magento. What is your experience with this platform at the beginning and how did it change over the years?
Yehor Shytikov, Software Engineer at THE COFFEE BEAN & TEA LEAF: I used to work at the Magento company as a core developer of Magento 2, but I am familiar with both Magento platforms. From my perspective, I can say that Magento 2 is - in general - a better product. Yet, it is still not the best one to start work with.
Magento 2 has a better framework optimization from a development perspective. It allows developers to use the dependency injection, plugin system (which is considered harmful AOP software development principle), and XML notations for layout. I personally like the folder structure in which one directory is one module. Magento 1 was messy since one module contains several folders.
Magento 2 uses a modern Symphony approach but it still has a lot of legacy code. Even though it introduces a new way of embracing front-end development, however from a nowadays perspective it is not enough. No wonder as Magento 2 was released before Vue.js and React took the world popularity. These JS frameworks add more features for developers and - in general - provide more possibilities.
Still, these platforms - Magento 1 and 2 - are considered very powerful. They maintain their popularity over the years for a reason.
Yes, retailers are looking for a better and faster platform but stick with Magento because - despite its flows - Magento remains to be the best “free” open-source eCommerce platform available on the market. It has no real competitor for now. However, M2 gives more room to grow for the new solutions. Also it has a lot of offshore developers ready to maintain your web store. At the same time, companies in the USA and France can’t find local developers to help with their online stores. Developers like to use popular modern technologies, but not to support old PHP code.
And yet you have a strong opinion on Magento 2 performance.
That’s true. My team in Magento was responsible for the performance measurement, so I know a lot about it. I am also aware of the progress Magento has made. Magento 2.3 is faster than Magento 2.0 about three times! Yet, it is still twice slower than Magento 1.
Sounds like a regression...
No, it shouldn’t be perceived that way. Magento 1 was pretty fast because it had fewer lines of code 650K versus 5 millions in Magento 2, and the basic rule for PHP is: the more code, the slower performance. Thanks to modern tools like Node.js, which have options to work asynchronously with a code, you can improve the response time of a single page. VSF works that way because it uses Node.js as a middleware.
Let’s talk about Vue Storefront then :)
For Sure, I am a big fan of this solution and I am not alone in it. It's probably the biggest PWA platform for eCommerce with a vivid community and 6000 stars on GitHub. By the way, Magento, which exists on the market for a long time, has “only” 8000 stars. What I like the most about VSF, is that it avoids the usage of a slow Magento backend without avoiding Magento itself. It resolves the issue of slow performance by using NodeJS serverless middleware that I mentioned above. In general, with VSF you can achieve better performance and break the Magento limitation.
Do you find it easy to work with Vue Storefront?
Vue Storefront is built with Vue.js, which makes it relatively easy to use by developers. Vue.js has a more standardized and friendly code base than e.g. React, which is not a framework but rather a library. Yet, Vue Storefront is also a platform-agnostic solution and uses middleware to connect with Magento, Shopify or Shopware. However, for Magento customers probably it would be easier to connect Magento by native indexing tool without the difficulties created by an additional layer. It would also be faster.
The “native” integration - just like the one Vue Storefront Team has created with Shopware - is, in my opinion, the best possible approach to PWA implementation.
Given your interests in web performance, PWA, must be something about that you are fond of?
PWA is a real revolution not only in eCommerce, but also in the web in general. It is not a technology itself, but a new way to build the application, a way that brings a number of benefits. It allows developers to work with a legacy system, and - without global changes in backend architecture - improve the UX and increase the web performance.
Headless approach - represented by VSF - is time-consuming, but it gives a lot more flexibility than the Magento UI component “hybrid” approach when you use the Magento layout system and GraphQL API with KnockoutJS. Yet, you can choose what works for your company.