Released on November 14th, 2019 which corresponds to version
1.14.0 of our libraries.
In this release, we’re releasing a brand new server side rendering architecture, and are also shipping improvements to our Progressive Web App (PWA) scaffold and PWA SDK.
Progressive Web Apps (PWAs)
Node server-side-rendering (SSR) environment
Node SSR is a new environment being introduced to the Mobify Platform to handle server-side-rendering. With Node SSR, the goal was to move to a server-side-rendering approach that's more reflective of what React recommends. The Node SSR environment uses a combination of Node.js and Express, and leverages React's
renderToString() function to return HTML server-side.
Some key benefits and changes developers will enjoy while using the new Node SSR environment include:
- Familiarity and simplicity: Developers well-versed in conventional server-side-rendering with React will feel right at home with Node SSR.
- Decoupled: The Node SSR environment is completely state management library agnostic. Redux dependencies are now optional.
- Improved developer experience: Node SSR provides developers with full access to your application's HTML and HTTP responses so that they can easily make changes.
- Interoperability: Since Node SSR leverages conventional React SSR practices, third party libraries and tools will work better with Mobify. Additionally, developers will be able to easily leverage existing React and third party library documentation for SSR.
For this release cycle, we'll be releasing Node SSR in a separate "V2" release, that will be marked as a release candidate. This version will be released as
2.0.0-preview.0. As a release candidate, developers can expect the code to frequently change with continued iteration on Node SSR, and can also expect breaking changes to occur.
Users who are interested in using Node SSR early for their projects are free to generate their projects from the initial "V2" release candidate. "V2" will fall under our early access policy. Once we've progressed Node SSR to a point the Mobify team is happy with, we'll be dropping the release candidate marking from the "V2" release, officially move the Platform to the "V2" version, and commit to pausing frequent, breaking changes to the interface.
Mobify is committed to continue supporting both the new and previous SSR environments. However, the previous SSR environment will no longer be actively developed further outside of bug fixes and maintenance. The previous SSR environment will only available as part of the
1.x.x release stream.
Refer to our blog article for the backstory on what's new and different with the new Node SSR environment.
Content Security Policy (CSP) support for inline scripts
The PWA SDK has been updated to support adding a strict CSP, while still allowing the usage of inline scripts.
With script hashing, we calculate a hash for every inline script embedded within a page, and include that list of hashes as a whitelist in the CSP header. Since Mobify does not have ownership of all inline scripts within a project, we're unable to set the CSP header automatically. However, the SDK has been updated to at least generate all the hashes for every inline script.
Node 10 Support
Mobify targets are the environments that run your app using Node.js. Previously, targets used Node.js version 8.10.x but that's changing going forward, as version 8 will be discontinued in January 2020. As part of this release, the Progressive Web SDK and Accelerated Mobile Pages (AMP) now supports Node.js 10. For PWAs, it’s supported in our latest version of the Mobify Platform (1.14.0) and we’ve also released patches for older SDK versions 1.11.3, 1.12.2 and 1.13.2. No SDK update is required to consume the update for AMP.
For Server-side rendered customers:
- Mobify customers using server-side rendering must upgrade to Node.js 10 by January 1st, and we’ve already been spreading the word to affected customers. For more details on how you can upgrade your server-side rendered application, visit our Node.js upgrade instructions.
For Mobify tag customers:
- There are no actions required for tag-loaded projects, though you can choose to upgrade to an SDK version that supports Node.js 10 for local development benefits.
For AMP customers:
- Mobify customers with AMP projects must upgrade to Node.js 10 by January 1st, and we've already been spreading the word to affected customers. For more details on how you can upgrade your AMP application, visit our Node.js upgrade instructions.
Progressive Web Apps
Redeploying Bundles using the Mobify API
Back in July we released the Mobify API, which had an initial focus on target management. This release we’ve started to expand the API with new functionality:
- You can now create a new bundle and deploy it immediately without using the Mobify Cloud user interface.
- You can roll back to a previous bundle using the API.
- Redeploying the current live bundle is now possible. Redeploying bundles can be useful for a number of common operations such as applying new target configuration or invalidating the cache.
To use the new feature, check out our Mobify API Reference docs.
nightwatchdependencies have been updated to use their latest versions to resolve new security vulnerabilities associated with each library.
- Resolved an issue where transitioning from the product listing page to the product detail page would cause janky horizontal re-centering.