Element, formerly known as Vector and Riot, is a Matrix web and desktop client built on the Matrix JS SDK. It's the reference web client for the Matrix open messaging protocol, aimed at teams and individuals who want a self-hostable or hosted chat client without a single company controlling the network underneath it.
Being built on an open, federated protocol rather than a proprietary backend is the core distinction here. Anyone can run a Matrix server, and Element is one of several possible clients for that network, which matters if avoiding vendor lock-in on your chat infrastructure is a priority.
develop branch continuously deployed to develop.element.io for people who want the newest, less stable build.Element Web is a good fit for anyone who wants to use or run a Matrix client, whether that's individuals using the hosted app.element.io, organizations self-hosting their own instance for internal or customer-facing chat, or businesses that need the terms of a commercial license rather than the AGPL or GPL options. Desktop users get a native-feeling Electron app alongside the browser-based client, both built from the same codebase.
It's a weaker fit for mobile use. The README specifically recommends the separate native apps, element-x-android and element-x-ios, over running Element Web on a phone or tablet. It's also worth checking the supported-environment tiers before relying on Element Web in older or less common browsers, since issues affecting environments outside the covered tiers are simply closed rather than fixed, as the project focuses its support on recent versions of major browsers.
For most users, the simplest path is the hosted client, with no installation required:
To self-host your own instance, the README points to a dedicated install guide within the repository:
docs/install.mdTo run Element as a desktop app, you can either download a prebuilt version from https://element.io/get-started, or build it yourself following the instructions linked from the apps/desktop directory in this repository. The desktop app's default settings can be overridden using the configuration options documented in docs/config.md.
Before contributing code, the README recommends reading through the Developer guide, Code style guide, and Contribution guide linked from the repository root. Since this repository is a monorepo hosting Element Web alongside other related projects in subdirectories, it's worth checking the monorepo documentation first if you're looking for a specific piece of the codebase, rather than assuming everything lives at the top level.