Welcome
Thank you for your interest in contributing to Proton WebClients! This monorepo hosts all Proton web applications including Mail, Calendar, Drive, VPN, Pass, Wallet, and more.Proton WebClients is licensed under GPL-3.0. By contributing, you agree that your contributions will be licensed under the same license.
Getting Started
Prerequisites
Before you begin, ensure you have the following installed:Node.js
Version >= 22.14.0 and < 23.6.0
Yarn
Version 4.12.0 (Yarn 4)
Git
Latest stable version
Installation
Install dependencies
Monorepo Structure
The project is organized as a Yarn 4 monorepo with workspaces:Applications
Each application in theapplications/ directory is a standalone web app:
- proton-mail - Proton Mail web client
- proton-calendar - Proton Calendar
- proton-drive - Proton Drive
- proton-account - Account settings
- proton-vpn-settings - VPN settings
- proton-pass - Password manager
- proton-wallet - Cryptocurrency wallet
- proton-lumo - AI assistant
Packages
Shared packages include:@proton/components- Reusable React components@proton/shared- Shared utilities and helpers@proton/crypto- Cryptography utilities@proton/styles- Design system and styles- And many more…
Making Changes
Finding Work
Issues
Browse open issues for bugs and feature requests
Questions
Ask questions about the codebase
Development Workflow
Make your changes
Follow the code style guidelines and write tests for your changes.
Commit your changes
Your commits will be automatically linted using Husky pre-commit hooks. See Pull Request Guidelines for details.
Code of Conduct
Building for Production
To build an application for production:dist/ directory.
Versioning Applications
To manually version an application:This should be run from the
main branch for a clean release.Translation
Proton WebClients is translated into multiple languages by our community.Help Translate
Learn more about contributing translations on the Proton blog
Getting Help
Where can I ask questions?
Where can I ask questions?
Use the Ask a Question issue template to ask code-related questions and discuss technical ideas.
How do I report a bug in my app?
How do I report a bug in my app?
For bugs in the production applications (not related to development), please use the appropriate support channels on proton.me rather than GitHub issues.
How does the monorepo work?
How does the monorepo work?
Refer to the Yarn Workspaces documentation for details on how to work with monorepos.
Next Steps
Code Style
Learn about linting, formatting, and code standards
Pull Requests
Understand the PR process and requirements