# 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