Magento PWA Studio is a collection of tools that lets developers build complex Progressive Web Applications on top of Magento 2 stores.
The PWA Studio project welcomes all codebase and documentation contributions. We would like to recognize the following community members for their efforts on improving the PWA Studio project:
mage2pratik | vdiachenko | jissereitsma | rossmc |
bobmotor | gavin2point0 | neeta-wagento | mtbottens |
Jakhotiya | JStein92 | bgkavinga | philwinkle |
bobbyshaw | matthewhaworth | shakyShane | Igloczek |
mhhansen | rowan-m | artKozinets | camdixon |
For more information about contributing to this repository, see the Contribution guide.
To facilitate local development, testing, and versioning, PWA Studio is structured as a monorepo using Yarn Workspaces. Packages in this repository are independently published to NPM; rather than installing pwa-studio
as a dependency of your project, you should install just the individual packages your project needs.
This repository includes the following packages as workspaces:
- venia-concept - Reference/Concept Storefront
- pwa-buildpack - Build tooling
- peregrine - eCommerce Component Library
- upward-js - Reference implementation of the UPWARD specification
- upward-spec - UPWARD specification and test suite
This repository also includes unpublished modules that are not managed by Yarn Workspaces. They are not configured as workspaces, so their dependencies are not hoisted and must be installed separately.
- pwa-devdocs - Project source for the documentation site
See the Venia storefront setup topic for instructions on installing this project's dependencies and running the Venia storefront on top of an existing Magento backend.
See our Troubleshooting guide if you run into any problems.
If you have an issue that cannot be resolved, please create an issue.
- Don't run
npm install
! Since this project has been configured with Yarn Workspaces, runyarn install
to properly install, hoist, and cross-link dependencies. - Don't check in
package-lock.json
. There is only one lockfile,yarn.lock
, and it's in the root directory. - To add a dependency, use workspace commands (e.g.,
yarn workspace @magento/venia-concept add my-module
). This will associate the dependency with the right package. - Before pushing a commit,
yarn run prettier
andyarn run lint
to format and inspect the source code. (There is also a git hook that will do this automatically.)