Proton Web Clients is a monorepo hosting the web applications for Proton Mail, Calendar, Drive, Account, VPN, Pass, Wallet, Lumo, and Meet.
The project solves the challenge of managing multiple interconnected web applications that share common dependencies and modules while maintaining separate entry points and deployment targets. It uses Yarn Workspaces with unified versioning across all packages, allowing shared code in libraries like @proton/components and @proton/shared to be consumed by multiple applications. This structure enables teams to develop and release distinct web clients while reusing infrastructure and UI components.
Developers should adopt this approach if they are building a suite of related web applications that benefit from shared tooling and component libraries. The monorepo structure suits organizations maintaining multiple TypeScript and React-based web clients that need coordinated development and release cycles. The project demonstrates how to handle complex scenarios such as the VPN application, which serves different entry points across separate domains without sharing local session state, showing that the monorepo can accommodate applications with distinct deployment and authentication requirements.
The project maintains active development with regular updates to its applications and shared libraries. Work spans across multiple applications simultaneously, indicating ongoing feature development and maintenance across the entire suite. The codebase includes comprehensive tooling for development workflows, suggesting investment in developer experience and build infrastructure. Translation community involvement is actively encouraged, pointing to internationalization as an ongoing concern for the project.