proton-lumo is a free, open source miscellaneous project written in TypeScript and released under GPL-3.0. It has 5,590 GitHub stars, 711 forks and 155 open issues, and was last pushed 7 hours ago. On this registry it ranks #14 of 25 tracked projects in Miscellaneous, with 5 head-to-head comparisons available. It gained 5 stars over the last 6 tracked days.

What is proton-lumo?

What it is

Proton WebClients is a monorepo hosting the Proton web clients. It lives in the Proton ecosystem and holds the web applications, their dependencies, shared modules, and all tooling surrounding web client development. Applications inside include Proton Mail, Proton Calendar, Proton Drive, Proton Account, Proton VPN, Proton Pass, Proton Wallet, Proton Lumo, and Proton Meet. Code and data files ship under GNU General Public License version 3.

Problem it solves: each client previously needed its own dependency tree and build setup, which fragments shared modules. Monorepo based on Yarn and Yarn Workspaces, with unified versioning for all packages inside. Shared code sits in @proton/components and @proton/shared. Workspaces symlink local dependents to one another, so one common install wires every client.

Key capabilities

  • Hosts multiple web clients in one tree: Mail, Calendar, Drive, Account, VPN, Pass, Wallet, Lumo, Meet.
  • Uses Yarn Workspaces, with local dependents symlinked to one another after a single yarn install.
  • Applies unified versioning across all packages in the monorepo.
  • Shares modules through @proton/components and @proton/shared.
  • Serves VPN from two separate entry points: applications/vpn-settings for protonvpn.com and applications/account for account.proton.me/u/{X}/vpn.
  • Provides start-all with an --applications flag to launch a chosen set of clients together.
  • Includes manual application versioning through yarn workspace @proton/version run version --applications proton-X --version x.x.x.x.
  • Covered by topics including monorepo, pgp, react, webmail, and yarn.

Who uses it and how

  • Developers run a single client from root, for example yarn workspace proton-mail start.
  • Teams serve VPN through vpn-settings on port 8050 with yarn workspace --port 8050 proton-vpn-settings start.
  • Teams serve VPN through the account application with yarn start-all --applications "proton-account", needed because both domains are separate and local SSO is not shared between them.
  • Maintainers cut releases on the main branch from the root folder using the version workspace command.
  • Translation contributors follow the project translation community process described in the linked blog post.

Getting started

Prerequisites are Node.js LTS, Yarn 4, and git; package.json holds specific version requirements. Clone https://github.com/ProtonMail/WebClients.git, run yarn install to install all dependencies for the entire monorepo and symlink local dependents, then start any client with yarn workspace proton- start.

When to use it — and when not to

README lists no Docker image, no published package, and no hosted option, so use means cloning and building from source with Node.js LTS and Yarn 4 on hand. Versioning is manual per application, and VPN is split across two entry points that do not share local SSO, which complicates local serving. The listing shows 155 open issues, 5585 stars, 711 forks, and 0 contributors recorded, so review the issue tracker before committing to it.

project readme (upstream, from github) — read inline

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

# Clone the project
git clone https://github.com/ProtonMail/WebClients.git
git clone [email protected]:ProtonMail/WebClients.git

# Install all dependencies for the entire monorepo & symlink
# local dependents to one another
yarn install

# Run web clients by running proton-<package-name>
# Example: proton mail web client
yarn workspace proton-mail start

For additional details on how to interact with the monorepo, see the yarn docs 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:

# 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.

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 file

Frequently asked questions

Is proton-lumo free to use?

proton-lumo is open source under the GPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does proton-lumo do?

Monorepo hosting the proton web clients

What is proton-lumo written in?

proton-lumo is primarily written in TypeScript. Its source is publicly available at https://github.com/ProtonMail/WebClients, and it has 5,590 GitHub stars.