HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
matrix-org
matrix-spec-proposals
Python2015–2026
matrix-org / matrix-spec-proposals

matrix-spec-proposals

Proposals for changes to the matrix specification

57Distinct people
182Mentions
4Explicit recommenders
1.3KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Proposals for changes to the matrix specification

GitHub

Where it is used

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

What people are saying

Yup. One of the biggest learnings of E2EE in Matrix is that the complexity is 95% user experience. However, in Element X, we've been determined to get it right - although there…

Arathorn used a recommendation phrase. 4 indexed comments match. This is a phrase match, not a verdict.

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 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 3:38:16 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 year182 dated mentions

Observed mentions: 2015-02-05 16:06:38 UTC to 2026-09-14 14:52:42 UTC.

010203040502015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20152016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 29 mentions; 0 submissions, 29 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 27 mentions; 0 submissions, 27 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 49 mentions; 2 submissions, 47 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 28 mentions; 1 submissions, 27 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 14 mentions; 0 submissions, 14 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 10 mentions; 0 submissions, 10 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 11 mentions; 0 submissions, 11 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 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
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC202
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC404
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC303
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC202
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC29029
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC27027
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC49247
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC28127
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC14014
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC10010
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC11011
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC303

From the project README

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

Read the project’s introduction
Matrix Specification Proposals This repository contains proposals for changes to the Matrix Protocol, aka "Matrix Spec Changes" (MSCs). The proposals directory contains MSCs which have been accepted. See below for instructions for creating new proposals. See also https://spec.matrix.org/proposals/ for more information on the MSC process, in particular https://spec.matrix.org/proposals/#process. The source of the Matrix specification itself is maintained at https://github.com/matrix-org/matrix-spec. The Matrix Spec Process An MSC is meant to be a technical document that unambiguously describes a change to the Matrix Spec, while also justifying why the change should be made. The document is used both to judge whether the change should be made as described and by developers to actually implement the changes. This is why it's important for an MSC to be fully fleshed out in technical detail, as once merged it's immediately part of the formal spec (even though it still needs to be transcribed into the actual spec itself). What changes need to follow this process? In most cases a change to the Matrix protocol will require an MSC. Changes that would not require an MSC are typically small and uncontentious, or are simply clarifications to the spec. Fixing typos in the spec do not require an MSC. In most cases, removing ambiguities do not either. The exception may be if implementations in the ecosystem have differing views on clarifying the ambiguity. In that case, an MSC is typically the best place to reach consensus. Ultimately, the Spec Core Team have the final say on this, but generally if the change would require updates to a non-insignificant portion of the Matrix implementation ecosystem or would be met with contention, an MSC is the best route to take. You can also ask in the Matrix Spec or Office of the Spec Core Team Matrix rooms for clarification. Summary of the process The MSC process consists of three basic steps: Write up the proposal in a markdown document. (There's a proposal template, but don't feel bound by it.) Submit it as a Pull Request to this repo, marking it as a draft until it's ready for wider review. Seek review from the community. Once people are generally happy with it, ask the Spec Core Team to look at it in the Office of the SCT Matrix room. When the SCT are happy with the proposal, and after a successful voting process, your pull request is merged and the MSC is now officially accepted as part of the Matrix Spec and can be used 🎉 For simple changes this is really all you need to know. For larger or more controversial changes, getting an MSC merged can take more time and effort, but the overall process remains the same. Below is various guidance to try and help make the experience smoother. Guidance on the process 1. Writing the proposal Come up with an idea. The idea can be for anything, but the solution (MSC) needs to benefit the Matrix ecosystem rather than yourself (or your company) specifically. Sometimes this means that the solution needs to be more generic than the specific itch that you are trying to scratch. Remember that an MSC is a formal technical document which will be used by others in the wider community to judge if the proposal should be accepted and to actually implement the changes in clients and servers. This means that for an MSC to be accepted it should include justifications and describe the technical changes unambiguously, including specifying what happens in any and all edge cases. There's a proposal template under docs/0000-proposal.md, but you don't necessarily need to use it. Covering the same major points is fine. Note: At this stage, you won't have an MSC number, so feel free to use 0000, XXXX, or whatever other placeholder you feel comfortable with. Some tips for MSC writing: Please wrap your lines to 120 characters maximum. This allows readers to review your markdown without needing to horizontally scroll back and forth. Many markdown text editors have this feature. If you are referencing an existing endpoint in the spec, or another MSC, it is very helpful to add a link to them so the reader does not need to search themselves. Examples: "This MSC proposals an alternative to MSC3030." "A new field will be added to the response body of /_matrix/client/v3/sync". Note: it is best to link to the latest stable version of the spec (e.g. /v1.3, not /latest) - failing that, /unstable if the change is not yet in a released spec version. GitHub supports rendering fancy diagrams from text with very little effort using Mermaid. See this guide for more information. Take a look at the MSC Checklist. When it comes time for the Spec Core Team to review your MSC for acceptance, they'll use the items on this checklist as a guide. 2. Submitting a Pull Request Open a Pull Request to add your proposal document to the proposals directory. Note that this will require a GitHub account. Mark your Pull Request as a draft for now. The MSC number is the number of the pull request that is automatically assigned by GitHub. Go back through and edit the document accordingly. Don't forget the file name itself! Edit the pull request title to fit the format "MSC1234: Your proposal title". Once your proposal is correctly formatted and ready for review from the wider ecosystem, take your Pull Request out of draft status. The Spec Core Team will notice this and apply various labels/status tracking to your MSC, which will announce it to the wider world. 3. Seeking review Seek review from the Matrix community. Generally this will happen naturally, but if you feel that your proposal is lacking review then ask for people's opinion in the Matrix Spec room on Matrix. Reviews can take many forms, and do not need to be done solely by members of the Spec Core Team. Getting other people who are familiar with the area of Matrix you are proposing changes to is a great first step; especially those who may be implementing these changes in clients and/or homeservers. While
Read the full README on GitHub

What Hacker News says

49 sources
caslon·Dec 31, 2021Recommendation phrase
- The native clients for Matrix suck. Even the mobile clients for Matrix are full of bugs. - No custom emojis; every chat application known to man has regular emojis supported in UTF-8, so the author must be talking about custom ones. Which Matrix still does not have: https://github.com/matrix-org/matrix-doc/pull/1951 - I don't think doing what PGP does is really impressive, but okay, fine, one point. - Matrix group chats are broken and this is why Synapse eats resources like a bear. - No searchable history on all but one Electron client on one platform when using E2E is terrible, and further supports the argument that all clients suck. - Point; this is pretty convenient. - XMPP sucks. Matrix is modern XMPP. People don't like getting confused with servers and similar nonsense, and when your homeserver goes down, you're out of luck. Federa
Read the rest
tion sucks. The question wasn't made to exclude Matrix, it was made to point out that federation sucks. Matrix didn't invent federation; it chose it long after it failed. - E2E degrades experience greatly. To list my two biggest complaints: It ruins search for all but one client, and the UX around keys is terrible. I frequently have conversations with incredibly technical people and they'll still get absolutely stumped by the UX around keys, because it's awful. Two out of eight isn't bad. I use Matrix every day. I have for years; long before the recent rebrand, and multiple presidents have vacated office since I started using Matrix. I love Matrix. But there's no reason to act like it's some golden goose when there are problems from 2015 that are no closer to being fixed than they were at the time. It's a comfortable protocol for usage by people who have powerful computers. For everyone else, it still isn't great.
In How Telegram Messenger circumvents Google Translate's API
Spaces is the most important thing I miss in Slack. The use of different accounts for different communities is understandable in the business point of view, but is very unacceptable for people just curious about multiple open-source projects. They are also adding conversation threading [1], which I think is one of the most notorious features of Slack. The thing I like about Matrix is they are basically implementing every feature in the other platforms, so it's just a matter of time before we get a decent UI that can compete with the existing platforms [1] https://github.com/matrix-org/matrix-doc/pull/3440
In Please don't use Discord for FOSS projects
An example of resolving conflicts is something like MSC2962 (https://github.com/matrix-org/matrix-doc/pull/2962) and MSC3216 (https://github.com/matrix-org/matrix-doc/pull/3216). Two proposals to solve the same problem, different ways. The first one was written by me; the second one was written by joepie91, who's a completely independent community member. Doesn't get much more of a direct conflict than this. So, to resolve it, the spec core team (which is a mix of element employees and community members) went through the two proposals to compare them and concluded that joepie91's approach is better. So we're about to kill off MSC2962 and merge MSC3216 into the spec instead. Please stop with all the disinformation - it'd be way more constructive to invest your energy into improving XMPP than trying to make Matrix out to be evil.
In Telegram Ad Platform
Yup. We call this "widgets", and it lets you embed arbitrary web UI into a Matrix client. MSC1236 is the base proposal (https://github.com/matrix-org/matrix-doc/issues/1236) which Element implements, and there are a stack of other proposals on top of it which need to be merged into the main spec. This is how Element embeds Jitsi today, and was extensively used for FOSDEM 2021 (https://matrix.org/blog/2021/02/15/how-we-hosted-fosdem-2021...). We're currently adding "full-screen" widgets too, though, as well as "inline widgets" (for polls etc).
In Spaces launch in Element
Voice Messages are thing, but are not exactly like Discord voice rooms: https://element.io/blog/introducing-voice-messages-and-so-mu... But Matrix is an open protocol that everyone can improve. The Specifications Change Proposals are open to everyone willing to formalise the change they want, get it reviewed, and implement it so it works in practice. And there is a Matrix Spec Change going in the direction of Discord-like voice chat rooms! (https://github.com/matrix-org/matrix-doc/blob/matthew/group-..., and in particular https://github.com/matrix-org/matrix-doc/blob/matthew/group-...)
In Spaces launch in Element
In this case, the parent spec change for Spaces was MSC1772: Matrix spaces (https://github.com/matrix-org/matrix-doc/pull/1772). You may also want to look into MSC2946: Spaces Summary (https://github.com/matrix-org/matrix-doc/pull/2946) and MSC3083: Restricting room membership based on membership in other rooms (https://github.com/matrix-org/matrix-doc/pull/3083). These will manifest in a published version of the spec when we next cut one of those (soon!). We're also working on a new design / platform for the spec docs at https://spec.matrix.org/ which is where it should appear.
In Spaces launch in Element
> What would you think if you discovered that a new messaging software claiming to be decentralized is sending lots of your private data and metadata to their central servers despite you installed your own instance? It's funny that the article links an early version[1] of the matrix.org website. In the beginnings they didn't even claim Matrix was decentralized, but wanted to be a federated network of servers, similar to how email works now. It's only recently with the new plans for fully p2p clients that they switched to the "decentralized" design. In fact in the pages linked the world "decentralized" never appears. > Matrix is not a community-based software, it was born [00] in Amdocs [01], a multinational corporation founded in Israel. > On the Internet we find many pieces information connecting Amdocs with Israel’s Intelligence [02][03
Read the rest
][04]. Tor was built by the US navy and the NSA gave us SELinux and Ghidra, so what? If it's an open standard who cares who built it? > Riot, the Matrix client, was created with Electron Riot (now Element) is a web client: you don't need electron to use it as much as you need it for any other web application. Moreover there are a dozen[2] of independently developed clients, including native clients built with Qt (Nheko, Quaternion, Neochat), GTK (Fractal), Flutter (FluffyChat), etc. > Matrix arrived with this plan to interconnect every existing IM and VoIP network through what they call Bridges [10], which could be seen as a centralizing hub where metadata could be analyzed, as well as the right place to try Person In The Middle Attacks. Agreed, but you can run your own server: it's in fact encouraged, unlike other actually centralized services like Signal. If you're using something like NixOS[3] it's actually relatively easy to configure a homeserver and bridges. Also, if they manage to migrate to decentralized identisies and p2p clients, most of these concerns will be addressed. > Summary of the Notes on privacy and data collection of Matrix.org - Matrix IDs are actually intended to be removed from the protocol messages to make identities portable[4]; - email addresses and phone numbers are optional if you don't want to use the identity server (allow people to find you using email, phone etc.) - IP address: yeah, try to write a networked application that doesn't use them - Room IDs and other servers are other essential data for the protocol to work - user devices and system information: I don't know about this, is this collected by some crash reporter? - Profile name avatars: this is public information, really. Again, most of this is not a concern if you run your own server now, or with p2p in the future. matrix.org is just a reference homeserver, you are not forced to use it in any way, you don't loose any feature. [1]: https://web.archive.org/web/20141217141653/http://matrix.org... [2]: https://matrix.org/clients/ [3]: https://nixos.org/manual/nixos/stable/index.html#module-serv... [4]: https://github.com/matrix-org/matrix-doc/pull/2787
In Matrix? No, Thanks

Showing the 15 most recent of 49 sources. Enable JavaScript to search and browse every indexed mention.

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.