Skip to main content

Proton WebClients

Monorepo hosting the Proton web clients including Mail, Calendar, Drive, Pass, VPN, and Wallet applications with shared component libraries and utilities.

What is Proton WebClients?

Proton WebClients is a comprehensive monorepo that powers Proton’s suite of privacy-focused web applications. Built with React 18 and TypeScript, it provides a unified development environment for all Proton web products, including:
  • Proton Mail - End-to-end encrypted email service
  • Proton Calendar - Private calendar and scheduling
  • Proton Drive - Secure cloud storage
  • Proton Pass - Password manager
  • Proton VPN - Virtual private network settings
  • Proton Wallet - Cryptocurrency wallet

Key Features

Multiple Applications

Seven production web applications sharing a common architecture

Component Library

Over 100 reusable React components with comprehensive documentation

Shared Packages

Modular packages for utilities, hooks, state management, and more

End-to-End Encryption

PGP/OpenPGP integration for secure communication

Architecture Highlights

Monorepo Structure

The repository is organized using Yarn Workspaces with unified versioning:
WebClients/
├── applications/     # Web applications (mail, calendar, drive, etc.)
├── packages/         # Shared packages and libraries
│   ├── components/   # UI component library
│   ├── shared/       # Common utilities
│   ├── hooks/        # React hooks
│   ├── atoms/        # Design system atoms
│   └── ...
└── utilities/        # Build tools and scripts

Technology Stack

  • React 18 - Modern React with concurrent features
  • TypeScript 5.9 - Type-safe development
  • Redux Toolkit - State management
  • Yarn 4 - Package management and workspaces
  • Webpack 5 - Module bundling
  • Jest - Testing framework

Privacy & Security

All Proton applications are built with privacy as the foundation:
Proton WebClients implements end-to-end encryption using OpenPGP, ensuring that user data is encrypted on the client side before transmission.
  • Zero-access encryption - Proton cannot read user data
  • Open source - Licensed under GPL-3.0
  • PGP integration - Industry-standard encryption
  • Client-side encryption - Data encrypted before leaving the device

Installation

Set up your development environment

Project Structure

Understand the monorepo layout

Building Apps

Learn how to build applications

Components

Explore the component library

Contributing

Contribute to Proton WebClients

API Reference

Browse the API documentation

Who is this for?

This documentation is designed for:
  • Contributors - Developers contributing to Proton’s open-source projects
  • Internal developers - Proton team members building new features
  • Library consumers - Teams using Proton’s shared packages
  • Researchers - Security researchers auditing the codebase

Community

Proton WebClients is an open-source project licensed under GPL-3.0. We welcome contributions from the community.

GitHub Repository

View the source code and contribute

Translation Community

Help translate Proton products

Next Steps

1

Install Dependencies

Follow the installation guide to set up your development environment.
2

Explore the Structure

Learn about the project structure and how packages are organized.
3

Run an Application

Start developing by building and running one of the applications.
4

Browse Components

Explore the component library to see available UI components.

Build docs developers (and LLMs) love