PWA Studio - Where are we at September 2019?




As a preface this blog post is written by someone that I would classify as active lurker. I have been following the progress on Github and follow the discussion in the Magento EngCom #pwa slack channel. From time to time I clone the latest code to assess when a good time to spend more time with it is.

tl;dr;
We are getting closer and some of the foundation pieces are in place but still lots of progress needed.

Starting with Venia

One of the big changes for me, that I believe hasn't really had an announcement, is the change of how Venia (the reference theme implementation) is being treated. Initially when the PWA Studio efforts started Venia was offered as a glimpse at how Magento would work on a theme using PWA Studio however it was explicitly mentioned to not build on top of it. The idea was to build a component library for commerce (Peregrine) which should be used as the base instead, disregarding Venia completely. The component library idea is still very much what they are targeting but the upcoming PWA Studio 4.0.0 release will allow you to take advantage of more of the work that went into building the Venia reference theme without having to re-invent everything. The underlying change for this is the introduction of a new package venia-ui which is then consumed by a light weight venia-concept package. This approach aligns PWA Studio more with how a lot of other stores using the classic Magento themes have been built extending the Luma or Default themes.

Create @magento/pwa

As we speak version 4.0.0 seems to be close to release with a few versions already tagged as alpha/beta releases. One other exciting feature in this release is that it will include additional commands that answer the question "How do I get started with PWA Studio?" (currently the approaches range between git clone and rebase and using FallbackStudio). I'll post again once this is out, documenting how the create project is working out for me.

In typical Magento fashion (being part of Adobe doesn't look like to have changed this) the PWA Studio team is currently working hard to push for a release to coincide with Magento Live Europe happening in October 2019. The big changes that are being worked on right now is to move more functionality into Peregrine while at the same time adopting the fairly recent React changes to use Hooks, converting Components to Functional Components. Moving to, what looks to me, like the new way of using React straight away seems to me a solid decision for the long term.

Roadmap

Taking a look at what is coming up in the public Milestones it is also clear where the current gaps are. The big ones are Extensibility and Translations.

Below is a list of additional items that I am personally keeping an eye on to see if PWA Studio is ready for me.

  • Payment method availability. It is currently not clear what would be required for using additional payment methods. The demos and implementations so far are heavily skewed towards using Braintree.
  • Products with custom options. While configurable products mostly works (editing in the cart is just being improved at the moment) using products with custom options of any type is not yet possible with PWA Studio
  • There are still quite a few REST API calls used throughout PWA Studio. These would still get replaced with their GraphQl counterparts. Following the GraphQl Magento project here provides a good glimpse of where PWA Studio can go in the next few months (for example only very recently was a PR merged that will provide the Category Root ID of a store via GraphQl, up until now this had to be hard coded). There are also a few other hard coded assumptions currently baked into PWA Studio (for example don't try to use a catalog that has no .html suffix on category pages.
  • Virtual Quotes. The checkout process is hard coding a physical checkout - it currently has no provisions for skipping the shipping step for example if you are selling a gift card only.
  • Over all I feel it would be good to get the PWA Studio team onto a Magento Solution Specialist course to make them aware of some of the ways current Magento does things. While it is good to have them start with a white canvas at some point the expectations of Magento users will be that the admin settings work with their PWA store front.

In summary there is unfortunately still a bit of time to go before I see PWA Studio as the obvious choice to build on today unless you have very basic requirements like simple products only. While GraphQl coverage increases with every Magento release I believe there are still some important gaps there as well (Reviews for example). As GraphQl is tied into the release cycle of Magento any changes here are still months away from release.

The foundation seems to be in place and I hope that some of the aforementioned gaps can be closed quickly. With the current rate of progress Imagine 2020 seems like a solid guess for a good starting date. This makes it slightly awkward timing if you had planned on moving from M1 straight into an M2 PWA frontend before June 2020 as you probably have to thread the needle carefully in terms of your own efforts not needing to duplicate what the PWA Studio team might also deliver in the same timeframe. Focusing on GraphQl endpoints for custom code are an easy pick as a first step. I have started reviewing our own extensions to see what GraphQl functionality we can/should provide. If you have any suggestions feel free to reach out and let me know.

What's your take on PWA Studio? Is my Imagine 2020 guess maybe too pessimistic and Adobe manages to make a big push for a beginning of the year release (Magento 2.3.4 and PWA Studio 6.0.0)?

Kristof Ringleff

Kristof Ringleff

Founder and Lead Developer at Fooman

Join the Fooman Community

We send our popular Fooman Developer Monthly email with Magento news, articles & developer tips, as well as occasional Fooman extension updates.