HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
element-hq
element-web
TypeScript2017–2026
element-hq / element-web

element-web

A glossy Matrix collaboration client for the web.

68Distinct people
125Mentions
0Explicit recommenders
13.7KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A glossy Matrix collaboration client for the web.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 6:01:08 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year125 dated mentions

Observed mentions: 2017-02-14 06:05:55 UTC to 2026-04-15 22:22:09 UTC.

01020302017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 10 mentions; 0 submissions, 10 comments20172018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 9 mentions; 0 submissions, 9 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 28 mentions; 1 submissions, 27 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 30 mentions; 1 submissions, 29 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 19 mentions; 0 submissions, 19 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 11 mentions; 2 submissions, 9 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 8 mentions; 0 submissions, 8 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC10010
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC909
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC28127
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC30129
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC19019
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC1129
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC808
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC110
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC707
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC211

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Element Element (formerly known as Vector and Riot) is a Matrix web & desktop client built using the Matrix JS SDK. Supported Environments Element has several tiers of support for different environments: Supported Definition: Issues actively triaged, regressions block the release Last 2 major versions of Chrome, Firefox, and Edge on desktop OSes Last 2 versions of Safari Latest release of official Element Desktop app on desktop OSes Desktop OSes means macOS, Windows, and Linux versions for desktop devices that are actively supported by the OS vendor and receive security updates Best effort Definition: Issues accepted, regressions do not block the release The wider Element Products (including Element Call and the Enterprise Server Suite) do still not officially support these browsers. The element web project and its contributors should keep the client functioning and gracefully degrade where other sibling features (E.g. Element Call) may not function. Last major release of Firefox ESR and Chrome/Edge Extended Stable Community Supported Definition: Issues accepted, regressions do not block the release Community contributions are welcome to support these issues Mobile web for current stable version of Chrome, Firefox, and Safari on Android, iOS, and iPadOS Not supported Definition: Issues only affecting unsupported environments are closed Everything else The period of support for these tiers should last until the releases specified above, plus 1 app release cycle(2 weeks). In the case of Firefox ESR this is extended further to allow it land in Debian Stable. For accessing Element on an Android or iOS device, we currently recommend the native apps element-x-android and element-x-ios. Getting Started The easiest way to test Element is to just use the hosted copy at https://app.element.io. The develop branch is continuously deployed to https://develop.element.io for those who like living dangerously. To host your own instance of Element see Installing Element Web. To install Element as a desktop application, see Running as a desktop app below. Monorepo This repository is a monorepo hosting Element Web and other related projects in various subdirectories. You can read more about the structure here. Element Web To learn more about Element Web click here Running as a Desktop app Element can also be run as a desktop app, wrapped in Electron. You can download a pre-built version from https://element.io/get-started or, if you prefer, build it yourself. To build it yourself, follow the instructions at https://github.com/element-hq/element-web/tree/develop/apps/desktop. Many thanks to @aviraldg for the initial work on the Electron integration. The configuration docs show how to override the desktop app's default settings if desired. Development Please read through the following: Developer guide Code style Contribution guide Translations To add a new translation, head to the translating doc. For a developer guide, see the translating dev doc. Triaging issues Issues are triaged by community members and the Web App Team, following the triage process. We use issue labels to sort all incoming issues. Copyright & License Copyright (c) 2014-2017 OpenMarket Ltd Copyright (c) 2017 Vector Creations Ltd Copyright (c) 2017-2025 New Vector Ltd This software is multi licensed by New Vector Ltd (Element). It can be used either: (1) for free under the terms of the GNU Affero General Public License (as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version); OR (2) for free under the terms of the GNU General Public License (as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version); OR (3) under the terms of a paid-for Element Commercial License agreement between you and Element (the terms of which may vary depending on what you and Element have agreed to). Unless required by applicable law or agreed to in writing, software distributed under the Licenses is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the Licenses for the specific language governing permissions and limitations under the Licenses. Please contact licensing@element.io to purchase an Element commercial license for this software.
Read the full README on GitHub

What Hacker News says

10 sources
Pasting imaging from clipboard is released, but is only implemented on the new (experimental) RTE editor, which has to be optionally enabled in Settings. https://github.com/vector-im/riot-web/issues/1855 is the issue tracking indexing file uploads. Patches welcome if anyone wants to add this into synapse; it'd be pretty easy and fun (although obviously wouldn't work with encrypted rooms). https://github.com/matrix-org/synapse/blob/master/synapse/re... would be the place to index the file and chuck its contents into the existing full text search tables via something like https://github.com/matrix-org/synapse/blob/master/synapse/st.... My point is that Riot is FOSS, and if folks feel features are missing, please help us implement them O:-)
In Total.js Messenger – A small alternative to Slack
It depends on your client as matrix.org is a open protocol. Anyone could implement the features you long for, that's the beauty. The following are for Riot Desktop: * Drag-and-drop file uploads. Sure. * Paste images from clipboard. Did not work for me but it has been written and will work soon, if it does not already: https://github.com/vector-im/riot-web/issues/1297 * Search previous file uploads. Dunno, there is a list of a room's files but I don't see a search option. Should be a trivial addition, maybe make a feature request? :) * Video uploads with inline preview. Sure, they are rendered in the message window.
In Total.js Messenger – A small alternative to Slack
So, worst case this is 4 hits; one to /login (if you don't already have an access token), one to /directory to resolve the room alias to a room ID (if you don't already know the mapping), one to /send to send a message, and one to /sync (filtered to the room you care about, if you're mimicking IRC). In practice, this looks like: $ time ( (curl -s --limit-rate 8K 'https://matrix.org/_matrix/client/r0/login' \ --data '{"type":"m.login.password","identifier":{"type":"m.id.user","user":"matthew2"},"password":"secret"}' -A '' --compressed & curl -s --limit-rate 8K 'https://matrix.org/_matrix/client/r0/directory/room/%23riotdemo%3amatrix.org' -A '' --compressed) && curl -s --limit-rate 8K "https://matrix.org/_matrix/client/r0/rooms/%2eNNtfYnugaAKouPTJdp:matrix.org/send/m…
Read the rest
token" \ -X PUT --data '{"msgtype":"m.text","body":"test"}' -A '' --compressed && curl -s --limit-rate 8K -Gg 'https://matrix.org/_matrix/client/r0/sync' \ --data-urlencode 'filter={"room": {"rooms": ["!NNtfYnugaAKouPTJdp:matrix.org"], "timeline": {"limit": 20}, "include_leave": false}}' --data-urlencode "access_token=$access_token" -A '' --compressed ) > /dev/null real 0m3.258s user 0m0.057s sys 0m0.025s ...which signs you in, locates #riotdemo:matrix.org (which has 23 users), syncs 20 messages of scrollback from it, and sends a message, simulating a 64kbps link via curl's --limit-rate, and under your target of 4 seconds. Now in practice, most Matrix clients (e.g. Riot) currently don't bother to lazyload the initial /sync response with filters, which is why it can be slow the very first time you ever log in on a device. But this is just a matter of optimisation work on the clients - https://github.com/vector-im/riot-web/issues/1846 and https://github.com/vector-im/riot-web/issues/2914 etc. Meanwhile, any app built on matrix-{js,ios,android}-sdk caches sync results locally these days, so the slow initial sync is only ever a problem on the very first login. So, to be clear: HTTP is inefficient, but in practice it really isn't that bad. Can't wait to spend the time to switch to a proper binary transport system down the line, though, but to do so now would be premature optimisation.
In Why Slack is inappropriate for open source communications
>>Emojis Unless you have a mobile keyboard you'll have to search for emojis yourself and paste them. Emoji's will always be an after thought unlike in Matrix[1] and riot[2]. >>Search You're right, it has nothing to do with the protocol. It was never about if it was possible or not. I'm talking about if it is available right now. Try riot.im and then please show a mainstream IRC client with has the same search features. >>Session persistence >No, nobody wants this. Really? Are you sure? > The former is solved by the same server-side logging mentioned above and the latter is really the same idea. The thing is, most IRC servers don't want to buffer messages indefinitely for everyone that makes an account then never logs in again. Again, this isn't about if it is possible. It is about if it is available right now. You seem to be a big fan of
Read the rest
writing code by yourself for features. Please link me to the cool IRC client you use which has all these features. >>> Web Client IRC was never intended to be run in the web browser. But matrix was built with that in mind. This is what my ' And IRC feels so hacked on when fit it with the modern features one wants today' comment was all about. >IRC has lots of features that are much, much more complicated than what you mention above, like DCC file transfer. Honestly, I might sound ignorant, but I've never ever heard of DCC file transfer. And matrix has implemented E2E encryption in some of their clients(all the major ones), and implementing them in the rest is a priority. I don't ever thing IRC will have this. I'd be glad if I was wrong. Also, why the boast about 'much, much more complicated'? What features require so much complexity, and if they did require high level of complexity, how useful are they? Also IRC doesn't think a lot about the UX/UI part which is what I often am frustrated about. One thing I find interesting about your reply is that you seem to assume the user is an experienced programmer. You make suggestions about extending an IRC server feature like it's changing a setting. But most people who are in OSS wouldn't bother with that. And what about non-technical users? Shouldn't this be easy to use for them to? Or do you want to ignore them so that they continue using a closed messenger and wonder why they're dominating the mindshare today? Have you wondered why a lot of OSS projects moved to slack? I'm surprised no one in this thread is trying to find out why IRC doesn't seem to be the choice of OSS projects. Rather it seems to be about bashing matrix and one-upping IRC over matrix. Which solves nothing. [1]:https://github.com/matrix-org/matrix-react-sdk/pull/296 [2]:https://github.com/vector-im/riot-web/issues?utf8=%E2%9C%93&...
In Why Slack is inappropriate for open source communications
Given Matrix & Riot are entirely FOSS, please do spell out its obnoxiousnesses (rant here, or file on http://github.com/vector-im/riot-web/issues) so we and the wider community can go fix it. Agreed that Riot is too heavy; we're currently doing a performance blitz on it. In terms of Matrix itself being too heavy... we're still waiting for anyone to contribute a more efficient transport, but turns out HTTP+JSON works well enough that nobody has bothered. Empirically many people seem to use it fine for business and for IRC-style purposes though :)
In Why Slack is inappropriate for open source communications

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.