4. PWA Studio components
● upward-js
○ Describes how a web server delivers and supports a
Progressive Web Application.
● venia-ui
○ Component and workflow library for Venia storefront
● venia-concept
○ Base for project scaffolding
5. PWA Studio components
● Pagebuilder
○ First PWA Studio Extension
● Peregrine
○ Collection of custom React hooks
● Pwa-buildpack
○ Contains build and development tools
7. What a extension provider expect from
the extensibility API
● Extend build process
● Extend hooks
● Register own Routes
● Extend Content rendering from Magento
● Extend GraphQL Query and Mutation
● Extend overwrite CSS
● Replace, Insert,Extend JSX
9. Extensibility Concept of
PWA Studio
● A Target is a low-level extensibility point
○ It enhanced Webpack Tapable
● Webpack Tapable
○ Is the Plugin System from Webpack
● Expose simple high-level extensibility point
14. 3. Build
● Targets run at build time and can change
○ designed to resolve extension logic at build time
● Don't impose any performance cost at build time.
UPWARD is an acronym for Unified Progressive Web App Response Definition. An UPWARD definition file describes how a web server delivers and supports a Progressive Web Application.
Secure think about Security
JSX syntax extension to JavaScript.
describe what the UI should look like.
JSX may remind you of a template language, but it comes with the full power of JavaScript.
JSX syntax extension to JavaScript.
describe what the UI should look like.
JSX may remind you of a template language, but it comes with the full power of JavaScript.
pwa-buildpack scans all for declared Targets.
declare file, is NodeJS script which exports a function.
pwa-buildpack scans all for declared Targets.
Extensions which declare Targets have a declare file, a NodeJS script which exports a function.
BuildBus loads the declare file and calls that function with a TargetProvider object, an interface to the BuildBus.
pwa-buildpack scans all for declared Targets.
Extensions which declare Targets have a declare file, a NodeJS script which exports a function.
BuildBus loads the declare file and calls that function with a TargetProvider object, an interface to the BuildBus.
Interceptors execute, in turn calling other interceptors, until the build process completes.
The implementation of interceptors and the timing of the Webpack compiler object will determine what order targets are called at this point.
Rich content renderers for the RichContent component must implement this interface. Should be written as an ES Module—a module that exports functions with these names, rather than an object with these functions as properties.
Rich content renderers for the RichContent component must implement this interface. Should be written as an ES Module—a module that exports functions with these names, rather than an object with these functions as properties.
Rich content renderers for the RichContent component must implement this interface. Should be written as an ES Module—a module that exports functions with these names, rather than an object with these functions as properties.
This target collects a list of RichContentRenderer modules. It builds an array of these renderers, which Venia’s RichContent component uses to try and render a block of “rich” content, such as HTML.
This target collects a list of RichContentRenderer modules. It builds an array of these renderers, which Venia’s RichContent component uses to try and render a block of “rich” content, such as HTML.
This target collects a list of RichContentRenderer modules. It builds an array of these renderers, which Venia’s RichContent component uses to try and render a block of “rich” content, such as HTML.
This target collects a list of RichContentRenderer modules. It builds an array of these renderers, which Venia’s RichContent component uses to try and render a block of “rich” content, such as HTML.
Replace, Insert,Extend JSX
Works currently only for your namespace
defineEnvVars
overrides
Project Customization
TargetableCSSModule