Reflecting on Reacticon
Finally, I had time to reflect on Reacticon. Or Reflecticon. This PWA conference already happened two months ago. And life has been busy since. But Reacticon still serves as a landmark for the changes in the Magento ecosystem. It was experimental, it was different and it (hopefully) shows the path towards a new frontend. A New Hope.
Recap of Reacticon v2
I could dedicate a whole blog on this, but the slides and photos should speak for themselves. Reacticon 2 was a blast. (We are still working on videos but are having some technical issues there - will come up soon.) It had such a great atmosphere, 180 nerds exchanging thoughts on the new frontend tech.
Plus there were a lot of announcements: With Magento 2.3 being just weeks away, the excitement for the release of PWA Studio and the new GraphQL API grew. PWA Studio was not announced at Reacticon, but instead a new standard UPWARD was introduced as an initiative to create a common base for PWA providers. DEITY had a big moment by turning into open source with their Falcon release, while Vue Storefront has announcements on their v2 and their Storefront Cloud. The event felt great and we received great feedback.
A huge demand
The reflection I wanted to have does not involve reiterating the event itself endlessly. It was great but it is wrapped up already. However, while Reacticon 1 was kind of new (nobody has done a dev conf on frontend-only, except RTC), with Reacticon 2 everything felt more stable and trustworthy: Both DEITY and Vue Storefront are becoming reliable solutions and both are open source now, so healthy competitors (and because of their competition game, they are both becoming stable and extensible in a matter of months). And while PWA Studio is not ready yet, the Magento core team already shapes the future with initiatives like UPWARD, a common GraphQL API and Peregrine components.
We might not be there yet. But as with all new technology, it will take developers time to adapt to it. And once PWA is there, it will be changing the Magento landscape dramatically. Hop on board now and you don't need to be an early adopter, you can be a just-in-time (JIT) adopter. Delay now and you will stay behind. This is why it is hot. This is why there was such a huge demand for Reacticon tickets. And I'm personally just overwhelmed that Reacticon 2 took place only 6 months after the first one. (And I'm somewhere proud to say that I've accomplished 3 conferences in a year time: MTF 1, RTC 1 and RTC 2.)
How PWA is changing the Magento landscape
So ok, that's nice. Some guys says PWA is hot. While the technology is not ready yet. That's easy to say. True, but there is something else at play: Frontend developers have been complaining about the old Magento 2 frontend (say, KnockoutJS or KO) ever since it's release. It is overcomplicated, insane to troubleshoot and simply time-consuming. O, and it performs shit as well. This is a fact. The fact is that this is one of the main reasons why PWA is so hot. It is not just promising to be better than the old frontend, it is already proving it.
I have migrated myself a couple of Knockout UiComponents to React components and can confirm that working with React saves development time. And on the long run, it is a huge saver. Everybody who dives into React and Vue will tell the same thing. Yes, there is a learning curve, but it will pay off much sooner than the old learning curve with Knockout. Proving even more, Magento Head of Architecture Anton Krill mentioned already that obviously the old frontend will disappear on the long run, in favor of PWA. So it is not a question of if but when the landscape will change.
Sorry: How microservices will change the landscape
But while React and Vue are proving to be time-savers, allowing frontenders to develop frontends more quickly, it is not the real gamechanger. The real gamechanger is GraphQL. Or actually, what its promises will bring us. With GraphQL, the usage of frontend tools like React and Vue become possible. But if you want to build a frontend in PHP instead, or use Polymer, or something else, it becomes possible thanks to GraphQL.
The new GraphQL core will allow for Magento to transition from a monolithic system to a service-oriented architecture (SOA). The new Magento 2.3 release has deprecated MySQL fulltext search in favor of ElasticSearch, which is showing that microservices are upon us right here right now. How to manage all of these microservices? Well, perhaps with Docker technology like Kubernetes. PWA is just the frontend part of a bigger change towards a headless approach, where the Magento core no longer is the vital piece in a LAMP stack, but where the stack is made up by smaller interchangeable pieces, microservices.
Next up: MageTestFest v2 (March 2019)
And this brings us back to MageTestFest. If all of these microservices are to be working together properly, they should be functioning in a solid way at all times. How? By writing quality code, which again involves testing. MageTestFest 1 took place in Amersfoort, The Netherlands. But this time, MageTestFest 2 takes place in March (only a few months away) in Florence, Italy. And its purpose is to guide developers into a better Magento architecture - both frontend developers and backend developers.
Ticket sales for MageTestFest have started and we will be making many more announcements on this great developer event soon.
Next up: React in KO experiments
On the frontend side, Yireo is experimenting heavily with React. Not just in standalone React apps, but especially in existing Magento 2 projects, where Knockout UiComponents are refactored into React components. This sounds like it is complicating things. But actually, it saves development time and is much easier to work with, as soon as you understood the glue between React and Knockout. The Yireo ReactMiniCart extension is a nice module to show what is possible. Some things that are on my mind: Preact, GraphQL bindings in Knockout, KO listeners to trigger React events. There is more to come. Without the need to go full PWA.
Next up: Reacticon 3?
What about Reacticon 3 then? Well, forget it. I'm not going to commit to a Reacticon 3 just yet. While there might be a huge need to organize Reacticon 3 - Magento 2.3 is out now, peeps start fusing their own frontend together with GraphQL, the DEITY and Vue Storefront communities are growing rapidly and we haven't dived into alternatives like Polymer yet - our first focus is MageTestFest. Once this is wrapped, we will consider Reacticon 3. Not in The Netherlands, but somewhere else. You will not be disappointed.