In a conventional Magento theme, all of the pages are generated on the server. This means that the client needs to fetch the entire page every time the user clicks on a link, and even with caching enabled, the pages need to be fully re-generated whenever part of the relevant data is modified. Not only does this make Magento resource-hungry, but it results in slow load time.
Now that the rendering happens on the client, the server does not need to render the entire page every time. It merely needs to serve the data required by the client, which can happen much faster.
Since the client is responsible for rendering the page, it knows the structure of the page even before requesting the data. As a result, we can implement a smooth transition to the next page, and display placeholder loaders until the data arrives.
In addition to being rendered entirely client-side, ScandiPWA is a Progressive Web Application (PWA). This means that it can act similarly to a native iOS or Android application without any additional code.
Being a PWA also means that the application has a service worker (SW). The SW is a piece of caching code that intercepts certain requests it has already seen before, and simply returns the data it has already received, instead of making the same request again. Not only does this make repeat requests almost instantaneous, but it enables offline browsing of data that has already been fetched at some point.
Even with all these improvements, ScandiPWA is still a Magento theme - it can be installed on any Magento instance without setting up additional software! The only difference is that we use a faster mechanism for rendering the UI - instead of using Magento's layout system with templates, we use React components.
While the traditional methods of extending a Magento theme won't be applicable, we offer something even better - the Override Mechanism, which you can use to completely customize the theme. It is also possible to create and install reusable plugins for the theme.