{"adoption": {"forks": 705, "observed_at": "2026-08-28T04:09:22.369848+00:00", "stars": 5562}, "canonical_url": "https://ross.abutalabs.com/products/webclients", "card": {"archived": false, "artifact_type": "application", "description": "Monorepo hosting the proton web clients", "domain": ["web-development", "privacy", "email", "frontend", "security"], "enriched": true, "function": ["web-framework", "ui-components", "cryptography", "email", "file-upload", "state-management"], "health_score": 99, "homepage": null, "language": "TypeScript", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["ProtonMail/WebClients"], "name": "ProtonMail/WebClients", "platform": [], "pushed_at": "2026-08-26T20:15:53+00:00", "repo": "ProtonMail/WebClients", "stars": 5562, "tags": ["monorepo", "webmail", "pgp", "protonmail", "protoncalendar", "protondrive", "yarn-workspaces", "react", "self-hosted", "encrypted-email", "web-server", "nodejs", "typescript"], "topics": ["webmail", "pgp", "protonmail", "protoncalendar", "yarn", "react", "protondrive", "monorepo", "protoncontacts"], "urls": [], "use_cases": ["self-host or audit the Proton Mail web client", "contribute to Proton Calendar or Drive web apps", "study how a large React monorepo is structured", "inspect the client-side PGP encryption implementation", "build custom tooling on top of Proton web apps", "run Proton web clients locally for development"], "what_it_is": "The official monorepo for Proton's web clients, including Proton Mail, Calendar, Drive, VPN, Pass, Wallet, and more. It is built with React and TypeScript and managed via Yarn Workspaces with shared packages and tooling.", "when_to_avoid": ["you need a reusable email library rather than full applications", "you want a lightweight email client rather than the full Proton suite", "you need mobile or desktop clients instead of web apps", "you're not prepared to build and serve large React applications"], "when_to_choose": ["you want to review or self-host Proton's web clients", "you're contributing to Proton's frontend codebase", "you need a reference for large-scale Yarn Workspaces monorepos", "you want to audit the encryption behavior of Proton web apps"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/webclients", "repo": "ProtonMail/WebClients", "role": "main", "score": 84}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.369848+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:55:37.993638+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb36da435a39363f67994e86a8fe789a0c7deed06c6d53ff930d44f42d23de59", "fetched_at": "2026-08-28T04:09:22.369848+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ProtonMail/WebClients"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.369848+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:55:37.993638+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb36da435a39363f67994e86a8fe789a0c7deed06c6d53ff930d44f42d23de59", "fetched_at": "2026-08-28T04:09:22.369848+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ProtonMail/WebClients"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:55:37.993638+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb36da435a39363f67994e86a8fe789a0c7deed06c6d53ff930d44f42d23de59", "fetched_at": "2026-08-28T04:09:22.369848+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ProtonMail/WebClients"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.369848+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.369848+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.369848+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:55:37.993638+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb36da435a39363f67994e86a8fe789a0c7deed06c6d53ff930d44f42d23de59", "fetched_at": "2026-08-28T04:09:22.369848+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ProtonMail/WebClients"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.369848+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.369848+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:55:37.993638+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb36da435a39363f67994e86a8fe789a0c7deed06c6d53ff930d44f42d23de59", "fetched_at": "2026-08-28T04:09:22.369848+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ProtonMail/WebClients"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.369848+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.369848+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.369848+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:55:37.993638+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb36da435a39363f67994e86a8fe789a0c7deed06c6d53ff930d44f42d23de59", "fetched_at": "2026-08-28T04:09:22.369848+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ProtonMail/WebClients"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.369848+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.369848+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:55:37.993638+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb36da435a39363f67994e86a8fe789a0c7deed06c6d53ff930d44f42d23de59", "fetched_at": "2026-08-28T04:09:22.369848+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ProtonMail/WebClients"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:55:37.993638+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb36da435a39363f67994e86a8fe789a0c7deed06c6d53ff930d44f42d23de59", "fetched_at": "2026-08-28T04:09:22.369848+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ProtonMail/WebClients"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:55:37.993638+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb36da435a39363f67994e86a8fe789a0c7deed06c6d53ff930d44f42d23de59", "fetched_at": "2026-08-28T04:09:22.369848+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ProtonMail/WebClients"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:55:37.993638+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb36da435a39363f67994e86a8fe789a0c7deed06c6d53ff930d44f42d23de59", "fetched_at": "2026-08-28T04:09:22.369848+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ProtonMail/WebClients"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 55}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3738, "days_push": 7, "days_rel": 86, "gap_med": null, "n_releases_24m": 1}, "score": 84, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}