# Web clients This project is a monorepo hosting the Proton web clients. It includes the web applications, their dependencies & shared modules as well as all tooling surrounding development of the web clients (as well as some additional miscellaneous things). - Proton Mail - Proton Calendar - Proton Drive - Proton Account - Proton VPN - Proton Pass - Proton Wallet - Proton Lumo - Proton Meet Technically, this monorepo is based on Yarn & Yarn Workspaces, with unified versioning for all packages inside. ## Getting Started ### Prerequisites You'll need to have the following environment to work with this project: - Node.js LTS - Yarn 4 - git See `package.json` for specific version requirements. ### Installation ```shell # Clone the project git clone https://github.com/ProtonMail/WebClients.git git clone git@github.com:ProtonMail/WebClients.git # Install all dependencies for the entire monorepo & symlink # local dependents to one another yarn install # Run web clients by running proton- # Example: proton mail web client yarn workspace proton-mail start ``` For additional details on how to interact with the monorepo, see the [yarn docs](https://yarnpkg.com/) for reference. ## How VPN app differs from the rest VPN is present in both proton.me and protonvpn.com. However, they are served differently. Some parts of VPN are shared, hosted within `@proton/components` or `@proton/shared`, however, the entry points to them are different. For protonvpn.com, the entry point comes from `applications/vpn-settings` and for account.proton.me/u/{X}/vpn, the entry point is `applications/account`. Since both domains are separate, we don't share a local SSO between them. Therefore, we need to serve both applications separately: ```shell # To serve VPN through vpn-settings yarn workspace --port 8050 proton-vpn-settings start # To serve VPN through account yarn start-all --applications "proton-account" ``` ## How to version an application manually While being on the `main` branch for a clean release. From the root folder, run `yarn workspace @proton/version run version --applications proton-X --version x.x.x.x` ## Help us to translate the project You can learn more about it on [our blog post](https://proton.me/blog/translation-community). ## License The code and data files in this distribution are licensed under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See https://www.gnu.org/licenses/ for a copy of this license. See [LICENSE](LICENSE) file