explaingit

element-hq/element-web

13,090TypeScriptAudience · generalComplexity · 4/5LicenseSetup · hard

TLDR

Element is an open-source web and desktop chat client built on the Matrix protocol, letting you message, call, and collaborate via your own private server or the public Matrix.org network.

Mindmap

mindmap
  root((element-web))
    What It Is
      Matrix chat client
      Web and desktop app
    Features
      Direct messages
      Group rooms
      Voice and video calls
    Deployment
      Hosted at app.element.io
      Self-hosted option
    Tech Stack
      TypeScript
      Electron desktop
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Try a fully featured, privacy-respecting chat application at app.element.io without any setup.

USE CASE 2

Self-host Element Web inside your organization to replace Slack or Discord with your own private server.

USE CASE 3

Build or customize a Matrix-based messaging product by forking the TypeScript monorepo.

USE CASE 4

Deploy Element as a desktop application using Electron for users who prefer a standalone window.

Tech stack

TypeScriptElectron

Getting it running

Difficulty · hard Time to first run · 1h+

Requires a separate Matrix homeserver (e.g., Synapse) to be set up before Element Web is useful.

Free to use and modify under GPL v3 or AGPL v3, any changes you distribute must also be open source, unless you purchase a commercial license from New Vector Ltd.

In plain English

Element is a chat and collaboration client for the web, built on top of the Matrix protocol. Matrix is an open standard for real-time communication that lets anyone run their own messaging server while still being able to communicate with users on other servers, similar to how email works across different providers. Element is the main web client for that network. The application runs in a browser and covers typical messaging features: direct messages, group rooms, file sharing, and voice or video calls. It is also available as a desktop application using Electron, which wraps the same web interface in a standalone window you can download and install. For mobile devices, the project recommends separate native apps for Android and iOS rather than the browser version, as mobile web is community-supported rather than officially maintained. The easiest way to try Element without setting anything up is the hosted version at app.element.io, which connects to the Matrix.org public servers. Organizations can also install their own copy if they want to run private infrastructure. Setup instructions are provided in the project documentation. The codebase is written in TypeScript and organized as a monorepo containing Element Web and related sub-projects. Officially supported browsers include the last two major releases of Chrome, Firefox, Edge, and Safari on desktop operating systems. Firefox ESR and extended stable Chrome releases receive best-effort support. Licensing is multi-tiered: the software is available for free under either the GNU Affero General Public License version 3 or the standard GNU General Public License version 3, or under a paid commercial license for organizations that need it. The project is maintained by New Vector Ltd, the company behind Element.

Copy-paste prompts

Prompt 1
How do I deploy a self-hosted instance of Element Web and configure it to connect to my own Synapse Matrix homeserver?
Prompt 2
Walk me through adding a custom logo and color scheme to an Element Web deployment.
Prompt 3
How do I enable end-to-end encrypted voice and video calls in my self-hosted Element Web setup?
Open on GitHub → Explain another repo

← element-hq on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.