Element: The Flagship Matrix Client You Can Self-Host

Element: The Flagship Matrix Client You Can Self-Host

Element is the best-known client for Matrix, the open, federated chat protocol. Matrix works like email for chat: anyone can run a server, and users on different servers can talk to each other. Element Web is the browser client, and it is easy to self-host alongside your own Matrix server.

Server and client

Matrix separates the two:

  • A homeserver stores your account and rooms and federates with other servers: Synapse (the reference server), or the lighter Rust servers Continuwuity and Tuwunel
  • A client is what you use to chat: Element Web, Element desktop and mobile apps, or others such as Cinny and FluffyChat

Element can connect to any homeserver, so self-hosting Element is optional: you can use the public app.element.io with your own server. Self-hosting it gives you a client on your own domain that defaults to your server.

Features

  • End-to-end encrypted rooms and direct messages, with device verification
  • Spaces to group rooms, like Discord servers
  • Voice and video calls, including group calls
  • Threads, reactions, file sharing, and rich formatting
  • Bridges on the server side connect Matrix to Signal, WhatsApp, Telegram, Discord, IRC, and more

Self-hosting Element Web

Element Web is a static web app. Serve the release files from any web server, or use the official Docker image, and create a config.json pointing at your homeserver:

{
  "default_server_config": {
    "m.homeserver": { "base_url": "https://matrix.example.com" }
  }
}

Serve it over HTTPS on its own subdomain (for example chat.example.com), behind your reverse proxy.

For phones, Element recommends its newer native apps, Element X for iOS and Android.

License

Multi-licensed: AGPL-3.0, GPL-3.0, or a commercial licence (since 2023).