Element Web / Desktop
Active stableElement's web client and its Electron desktop app, built on matrix-js-sdk; both now live in one pnpm monorepo.
web, desktop · licence AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
- Web
- Windows
- macOS
- Linux
- Last commit
- today 4 Nov 2026
- Commits, last year
- 2.1k 493 in 90 days
- Authors, 90 days
- 41 76 in a year, 543 ever
- Bus factor
- 3 authors making half of last year's commits
- Last release
- v1.12.33 27 Oct 2026 · 50 tags in a year
- Lines of code
- 374k TypeScript
AI
AI policy
What the project says about AI-made contributions
Restricted (fits the chosen stance)(against the chosen stance)“Contributions are judged on their content, not on how they were produced. AI-assisted contributions are accepted; unreviewed AI output is not. [...] If your PR was made with the help of AI, you must convey that this is the case using the PR template.”
AI in development
Whether the developers use AI tools on the repository
Occasional (fits the chosen stance)(against the chosen stance)Collector: 26 of 2.2k commits in the last year credit an AI tool (1.2 %): claude 22, copilot 4. 1 agent file, 0 AI workflows. A lower bound: most AI use leaves no trace.
- AGENTS.md at the repo root (instructions for AI coding agents).
- 25 of about 2,100 non-bot commits in the last 365 days (about 1.2 %) carry an AI co-author trailer (Claude, Copilot Autofix).
- The PR template has an "AI assistance" checkbox.
-
AGENTS.md(agents.md, element-web) -
d2a5642282026-11-04 claude -
63663ec9c2026-11-03 claude -
ef0d0d46a2026-10-29 claude -
4d736a1f52026-10-29 claude -
cc6c1b32a2026-10-28 claude
AI in the product
Whether the product itself has AI features
None found (fits the chosen stance)(against the chosen stance)Activity
Languages
Apps
| OS | Built with | Status | Minimum OS | Where to get it |
|---|---|---|---|---|
| other | stable | not stated | web, docker |
| electron | stable | not stated | element.io |
| electron | stable | not stated | element.io |
| electron | stable | not stated | flathub, apt |
Features
| Feature | Value | How we know | Evidence |
|---|---|---|---|
| SDK | matrix-js-sdk (develop branch, Rust crypto) | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Encryption (E2EE) | Yes: Yes | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Cross-signing | Yes: Yes | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Key backup | Yes: Yes | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Sliding sync | Partial: Partial Native MSC4186 sliding sync behind the labs flag feature_sliding_sync (default off). | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Next-gen auth (OIDC) | Yes: Yes Next-gen auth (OAuth 2.0 / MAS); docs/oauth.md. matrix.org: supported. | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Multiple accounts | No: No | claimed | github.com/matrix-org/matrix.org/blob/041599b0dc |
| Threads | Yes: Yes | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Spaces | Yes: Yes | code | github.com/element-hq/element-web/blob/a3f5be54f |
| 1:1 calls | Yes: Yes Legacy m.call; Jitsi widgets also supported (matrix.org). | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Group calls | Yes: Yes Element Call embedded (@element-hq/element-call-embedded 0.28.0). | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Reactions | Yes: Yes | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Edits | Yes: Yes | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Replies | Yes: Yes | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Polls | Yes: Yes | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Custom emoji | Partial: Partial matrix.org: image_packs partial; no im.ponies code found in apps/web/src. | claimed | github.com/matrix-org/matrix.org/blob/041599b0dc |
| Stickers | Yes: Yes Via the integration manager sticker picker. | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Location | Yes: Yes Static and live location (beacons). | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Voice messages | Yes: Yes | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Rich text editor | Yes: Yes Markdown composer plus the optional WYSIWYG composer. | code | github.com/element-hq/element-web/blob/a3f5be54f |
| URL previews | Yes: Yes | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Push notifications | Yes: Yes Desktop/browser notifications and pusher management. | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Private read receipts | Yes: Yes | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Presence | Yes: Yes | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Room upgrades | Yes: Yes | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Moderation tools | Yes: Yes | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Accessibility | yes Playwright tests locate elements by role and accessible name; aria attributes in over 300 source files; a community room "Element accessibility" exists. | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Translations | yes Localazy; 41 locale files in apps/web/src/i18n/strings. | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Telemetry | opt-in PostHog analytics only after the user opts in (analyticsOptIn); Sentry (@sentry/browser, @sentry/electron) for rageshake/crash reports when configured. | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Default homeserver | yes matrix.org (default_server_config), identity server vector.im, integrations scalar.vector.im. | code | github.com/element-hq/element-web/blob/a3f5be54f |
| Fork-friendliness | partial Large pnpm + nx monorepo (web, desktop, shared components, modules); triple licence AGPL-3.0 / GPL-3.0 / commercial with a CLA for contributions. Many forks exist (SchildiChat). | code | github.com/element-hq/element-web/blob/a3f5be54f |
Health signals
- Bus factor (last year)
- 3
- Issue first response
- not measured (the forge did not give it)
- Release cadence
- 50 tags in the last year, latest v1.12.33 (27 Oct 2026)
- CI
.github/workflows/backport.yml.github/workflows/build-and-test-netlify.yaml.github/workflows/build-and-test.yaml.github/workflows/backport.yml.github/workflows/build_and_deploy.yaml.github/workflows/build_and_test.yaml- Tests
- test files found
- Security policy
- none found
- Licence
- AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
- Funding
- none listed
- Telemetry SDKs in manifests
- Sentry (apps/desktop/package.json) · Sentry (apps/web/package.json) · PostHog (apps/web/package.json) · Sentry (package.json)
Repositories
| Repository | Role | Activity | Last commit | Commits 1y | Authors 90d | Measured at |
|---|---|---|---|---|---|---|
| github.com/element-hq/element-web | main | Active | 4 Nov 2026 | 2.1k | 41 | a3f5be54f |
| github.com/element-hq/element-desktop | desktop | Dormant | 25 Mar 2026 | 61 | 0 | 264c591b9 |
Notes
matrix.org maturity: Stable. Element's organisation-wide AI policy (element-meta CONTRIBUTING.md, merged 2026-11-02 in https://github.com/element-hq/element-meta/pull/3393) applies to all element-hq repositories and to matrix-org repositories where Element is the core contributor. The repo's own CONTRIBUTING.md adds: "The PR description must be written by a human and mustn't be generated by AI tools"; its PR template has an "I used AI tools" checkbox. Element Desktop moved into the element-web monorepo (apps/desktop); the separate element-desktop repo's last commit is 2026-03-25.
Researched by an AI agent (Claude) on 5 Nov 2026, not checked by a person; metrics collected on 5 Nov 2026. Source file: data/projects/client/element-web.yaml. Spotted a mistake? Open an issue with a link.