# Element Web — Open-Source Matrix Chat Client > Element Web is a free, open-source chat client for the Matrix decentralized communication protocol. It provides end-to-end encrypted messaging, voice and video calls, and room-based collaboration. ## Install Save as a script file and run: # Element Web — Open-Source Matrix Chat Client ## Quick Use ```bash # Self-host with Docker docker run -d --name element-web -p 8080:80 -v /path/to/config.json:/app/config.json vectorim/element-web # Or use the hosted version at app.element.io ``` ## Introduction Element Web is the flagship web client for the Matrix protocol, an open standard for decentralized, end-to-end encrypted communication. It offers real-time messaging, file sharing, voice and video calls, and integration bridges to other platforms like Slack, IRC, and Discord. ## What Element Web Does - Sends and receives end-to-end encrypted messages in rooms and direct conversations - Makes voice and video calls with screen sharing using built-in WebRTC support - Bridges to third-party platforms including Slack, IRC, Discord, and Telegram via Matrix bridges - Organizes conversations into spaces (groups of rooms) for teams and communities - Supports message threads, reactions, rich text formatting, and file attachments ## Architecture Overview Element Web is a React and TypeScript single-page application that communicates with Matrix homeservers via the Matrix Client-Server API. The matrix-js-sdk handles protocol interactions, encryption (Olm/Megolm), and sync. The client maintains a local cache of room state and timeline data for offline access and fast navigation. Encryption keys are managed per-device with cross-signing for verification across sessions. ## Self-Hosting & Configuration - Deploy with Docker or serve the static build behind any web server like Nginx or Caddy - Point the config.json to your own Matrix homeserver (Synapse, Dendrite, or Conduit) - Configure custom branding with your own logo, colors, and server defaults - Enable Jitsi integration for scalable group video conferencing - Set default rooms and spaces that new users join automatically ## Key Features - End-to-end encryption enabled by default for private conversations - Decentralized architecture where no single entity controls the network - Rich integrations via Matrix bridges connecting to Slack, Discord, IRC, Telegram, and more - Spaces for organizing rooms into logical groups like departments or projects - Cross-signed device verification for secure multi-device usage ## Comparison with Similar Tools - **Slack** — proprietary and centralized; Element is open-source with federation and E2EE - **Discord** — gaming-focused and centralized; Element is self-hostable and privacy-focused - **Rocket.Chat** — self-hosted but single-server; Element federates across homeservers - **Mattermost** — team-focused and self-hosted; Element adds federation and E2EE by default - **Signal** — strong encryption but centralized and phone-number-based; Element uses decentralized Matrix identifiers ## FAQ **Q: Do I need my own Matrix homeserver to use Element?** A: No. You can register on the public matrix.org homeserver. Self-hosting gives you full control over your data. **Q: Is end-to-end encryption always on?** A: E2EE is enabled by default for direct messages and private rooms. Public rooms are unencrypted by default. **Q: Can I bridge Element to my Slack workspace?** A: Yes. Matrix bridges like mautrix-slack or matrix-appservice-slack connect Slack channels to Matrix rooms. **Q: How does federation work?** A: Each homeserver connects to others via the Matrix federation protocol, so users on different servers can communicate seamlessly. ## Sources - https://github.com/element-hq/element-web - https://element.io --- Source: https://tokrepo.com/en/workflows/36d5da8f-403f-11f1-9bc6-00163e2b0d79 Author: Script Depot