2024-06-24 13:57:30 +02:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<html lang="en">
|
|
|
|
|
|
|
|
<head>
|
2024-06-25 21:47:39 +00:00
|
|
|
<meta charset="UTF-8">
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
<title>Simon Müller: Matrix needs an Instant-Messaging upgrade</title>
|
|
|
|
<link rel="stylesheet" href="../../styles/styles.css">
|
2024-06-24 13:57:30 +02:00
|
|
|
</head>
|
|
|
|
|
|
|
|
<body>
|
2024-06-25 21:47:39 +00:00
|
|
|
<div class="wrapper">
|
2024-06-24 13:57:30 +02:00
|
|
|
<div class="center">
|
2024-06-25 21:47:39 +00:00
|
|
|
<div class="content">
|
2024-06-24 13:57:30 +02:00
|
|
|
<div>
|
2024-06-25 21:47:39 +00:00
|
|
|
<p><a href="/blog/posts.html">Back to posts</a></p>
|
|
|
|
<h1 id="matrix-needs-an-instant-messaging-upgrade.">Matrix needs an Instant-Messaging upgrade.</h1>
|
|
|
|
<p>Hello there! Your favourite nerd (or not!) on the internet is here to talk about Matrix again.
|
|
|
|
</p>
|
|
|
|
<p>I wanted to write this a little less formal this time, so here we go:</p>
|
|
|
|
<p>Every time I get someone to switch to Matrix from literally <em>anything</em> else (“unable to
|
|
|
|
decrypt”-memes aside) there is usually some “building-block” to the instant-messaging puzzle
|
|
|
|
missing. Once this was Media Captions, which <a
|
|
|
|
href="https://github.com/matrix-org/matrix-spec-proposals/pull/2530">is merged</a>, but not
|
|
|
|
practically usable anywhere because no client apart from <a href="https://beeper.com">Beeper</a>
|
|
|
|
actually implements it yet, or Rich Forwarded Messages, where you can actually see from whom a
|
|
|
|
message was forwarded kind of like how Telegram does it.</p>
|
|
|
|
<p>Truth is, whilst I love Matrix, there are some things I'm missing now that I've not been using
|
|
|
|
Telegram for the past ~6 months or so, and this blogpost serves as a one-stop shop for me to
|
|
|
|
reference different things that I'd like to see progress and actually have implementations
|
|
|
|
landed for. As such, <em>let's start listing things…</em></p>
|
|
|
|
<h2 id="rich-extended-profiles">Rich / Extended Profiles</h2>
|
|
|
|
<p>Yeah this is quite the pain-point right now, <strong>profiles are essentially just your name,
|
|
|
|
MXID and avatar</strong>, although on basically <em>every other platform on earth</em>, you
|
|
|
|
actually get options to customize your profile.</p>
|
|
|
|
<p>Let's take (the dreaded) Discord as an example, where you get: - Avatar / Profile Picture - A
|
|
|
|
banner - Badges (depending on different attributes your account has, e.g developer or
|
|
|
|
contributor status) - A description / “about me” section</p>
|
|
|
|
<p>That is quite a selection there (and I've left some things out), and it makes for some quite rich
|
|
|
|
profiles that can have lots of info on a person. I can link a blog, accent my avatar with an
|
|
|
|
extra banner, and maybe show off that I work on some project using a badge<a href="#fn1"
|
|
|
|
class="footnote-ref" id="fnref1" role="doc-noteref"><sup>1</sup></a>, it's quite nice!</p>
|
|
|
|
<h3 id="mscs-that-relate-to-this-issue">MSCs that relate to this issue:</h3>
|
|
|
|
<ul>
|
|
|
|
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/1769">MSC1769:
|
|
|
|
Rooms-as-profiles</a></li>
|
|
|
|
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/3755">MSC3755: User
|
|
|
|
Pronouns</a></li>
|
|
|
|
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4133">MSC4133: key:value
|
|
|
|
pairs for profiles</a></li>
|
|
|
|
</ul>
|
|
|
|
<h2 id="better-forwarded-messages">Better Forwarded Messages</h2>
|
|
|
|
<p>Right now, there is a couple of MSCs (see below) that try to tackle the issue of…forwarded
|
|
|
|
messages not really existing in Matrix. Forwarding a message is <em>about as good</em> as just
|
|
|
|
doing a Copy & Paste manoeuvre; Practically useless.</p>
|
|
|
|
<p>Comparing this to something like Telegram or even WhatsApp makes it clear to see why:
|
|
|
|
<strong>There is no indication that you're actually viewing a forwarded message</strong>. It
|
|
|
|
will be completely out of context.
|
|
|
|
</p>
|
|
|
|
<h3 id="mscs-that-relate-to-this-issue-1">MSCs that relate to this issue:</h3>
|
|
|
|
<ul>
|
|
|
|
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/2723">MSC2723: Forwarded
|
|
|
|
event metadata</a></li>
|
|
|
|
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/2730">MSC2730: Verifiable
|
|
|
|
forwarded events</a></li>
|
|
|
|
</ul>
|
|
|
|
<h2 id="rich-activity-indicators">Rich activity indicators</h2>
|
|
|
|
<p>Probably one of the most useless seeming, but actually most <em>useful</em> features that we
|
|
|
|
could “steal” from Telegram is rich activity indicators, or just “more typing indicators” as
|
|
|
|
it's also sometimes called.</p>
|
|
|
|
<p>The concept is simple: Usually you can see when someone types, but not when they are sending
|
|
|
|
media, or are otherwise waiting on something else to send. Rich Typing Indicators fixed this by
|
|
|
|
adding <em>all kinds of extra indicators</em> to the platform that showed when you were sending
|
|
|
|
media, picking a sticker, or doing other actions.</p>
|
|
|
|
<p>Whilst I think we should not go quite as… <em>deep</em>, some of the more basic things like
|
|
|
|
“[user] is sending media…” would definitely add value to the instant-messaging experience in
|
|
|
|
Matrix.</p>
|
|
|
|
<h3 id="mscs-that-relate-to-this-issue-2">MSCs that relate to this issue:</h3>
|
|
|
|
<ul>
|
|
|
|
<li><a
|
|
|
|
href="https://github.com/matrix-org/matrix-spec-proposals/blob/travis/msc/typed-typing-notifs/proposals/3038-typed-typing-notifications.md">MSC3038:
|
|
|
|
Typed typing notifications</a></li>
|
|
|
|
</ul>
|
|
|
|
<h2 id="games-and-interactive-content">Games and interactive content</h2>
|
|
|
|
<p>Pulling straight from Telegram and iMessage again, I think interactive content in chats is
|
|
|
|
actually quite fun. This could be a game a-la <a href="https://webxdc.org/">WebXDC</a> (which
|
|
|
|
could integrate with existing Matrix widgets 👀) or maybe something entirely different!</p>
|
|
|
|
<p>I envision this kind of depending on the rich typing indicators, as it could tell the people in a
|
|
|
|
room whether someone is currently playing a game. Additionally, I don't see why people wouldn't
|
|
|
|
be able to play games together using MatrixRTC :3; Oh, and another thing would <em>probably</em>
|
|
|
|
be sending state events to capture the current state of a game, like the high-score and who
|
|
|
|
holds it, or the current layout in a game of chess.</p>
|
|
|
|
<h3 id="mscs-that-relate-to-this-issue-3">MSCs that relate to this issue:</h3>
|
|
|
|
<ul>
|
|
|
|
<li>again, <strong>none</strong>! Couldn't find any, maybe I'll get the discussion started on my
|
|
|
|
own…</li>
|
|
|
|
</ul>
|
|
|
|
<h2 id="live-location">Live Location</h2>
|
|
|
|
<p>Quite self-explanatory, what about sharing our location <em>in real-time?</em></p>
|
|
|
|
<p>There is quite a lot to unpack here on the Client-Side, e.g it needs to stay active on mobile
|
|
|
|
devices even when the screen is off, across multiple operating systems, but the idea is quite
|
|
|
|
simple: <strong>let me share my location, for X amount of time, updating every X
|
|
|
|
Seconds/Minutes/Hours</strong></p>
|
|
|
|
<p>There is some existing work on this if I recall right (e.g legacy element), but it has been
|
|
|
|
mostly abandoned and isn't found in Element X.</p>
|
|
|
|
<h3 id="mscs-that-relate-to-this-issue-4">MSCs that relate to this issue:</h3>
|
|
|
|
<ul>
|
|
|
|
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/3672">MSC3672: Sharing
|
|
|
|
ephemeral streams of location data</a> (this isn't the <em>only</em> MSC regarding this,
|
|
|
|
but the most comprehensive one I've found.)</li>
|
|
|
|
</ul>
|
|
|
|
<h2 id="replying-with-media">Replying with media</h2>
|
|
|
|
<p>Technically, some clients do not prohibit this, and I don't think the spec does either, but
|
|
|
|
<em>basically no client allows you to do this!</em>
|
|
|
|
</p>
|
|
|
|
<p>Wanna reply with an image? Bad luck, most clients won't allow you even when they can display that
|
|
|
|
just fine.</p>
|
|
|
|
<h3 id="mscs-that-relate-to-this-issue-5">MSCs that relate to this issue:</h3>
|
|
|
|
<ul>
|
|
|
|
<li>None? Mostly unnecessary from what I can gather.</li>
|
|
|
|
</ul>
|
|
|
|
<h2 id="inline-bots">Inline Bots</h2>
|
|
|
|
<p>Oh boy. A friend suggested this and I don't even know where to start.</p>
|
|
|
|
<p>Inline Bots are a Telegram feature that allows you to input the handle of a given Telegram bot,
|
|
|
|
and have the rest of your chat input field be fed to the bot, which is useful to embed an image
|
|
|
|
search for instance.</p>
|
|
|
|
<p>I have no idea where this would even fall, Client-Server? Maybe needs to open a room with bots?
|
|
|
|
No damn clue.</p>
|
|
|
|
<h3 id="mscs-that-relate-to-this-issue-6">MSCs that relate to this issue:</h3>
|
|
|
|
<ul>
|
|
|
|
<li>Absolutely 100% none.</li>
|
|
|
|
</ul>
|
|
|
|
<h2 id="scheduled-messages">Scheduled Messages</h2>
|
|
|
|
<p>Honestly, I don't know how this isn't already implemented, as it is quite self-explanatory and
|
|
|
|
the MSC seems to be progressing nicely.</p>
|
|
|
|
<h3 id="mscs-that-relate-to-this-issue-7">MSCs that relate to this issue:</h3>
|
|
|
|
<ul>
|
|
|
|
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/3277">MSC3277: Scheduled
|
|
|
|
Messages</a></li>
|
|
|
|
</ul>
|
|
|
|
<h2 id="content-warnings-media-spoilers">Content Warnings / Media Spoilers</h2>
|
|
|
|
<p>Whilst there is already spoilers in matrix<a href="#fn2" class="footnote-ref" id="fnref2"
|
|
|
|
role="doc-noteref"><sup>2</sup></a>, you've never been able to set them for <em>media</em>.
|
|
|
|
This means you can't share an image or a video without someone in the room seeing a preview. If
|
|
|
|
you're sharing images about a movie, or maybe a video going over a story, using a spoiler to
|
|
|
|
indicate that you might not wanna view this is a nice feature to have</p>
|
|
|
|
<h3 id="mscs-that-relate-to-this-issue-8">MSCs that relate to this issue:</h3>
|
|
|
|
<ul>
|
|
|
|
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/3725">MSC3725: Content
|
|
|
|
Warnings</a></li>
|
|
|
|
</ul>
|
|
|
|
<h2 id="media-albums">Media Albums</h2>
|
|
|
|
<p>Yet Another Gripe With Media On Matrix™ that I've had for a while is that I can only send one
|
|
|
|
image per event at a time; even clients that let me send multiple things will just send them one
|
|
|
|
after another.</p>
|
|
|
|
<p>Media Albums would mean we can <em>finally</em> put a buncha things together into one message</p>
|
|
|
|
<h3 id="mscs-that-relate-to-this-issue-9">MSCs that relate to this issue:</h3>
|
|
|
|
<ul>
|
|
|
|
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/3382">MSC3382: Inline
|
|
|
|
Message Attachments</a></li>
|
|
|
|
</ul>
|
|
|
|
<h2 id="user-notes">User Notes</h2>
|
|
|
|
<p>Sometimes you just wanna leave a little note about someone. This feature would be about adding a
|
|
|
|
note to the profile of a user that only you can see, I got it suggested when asking on <a
|
|
|
|
href="https://wetdry.world/@cyrus">wetdry.world</a> about input on Matrix features.</p>
|
|
|
|
<h3 id="mscs-that-relate-to-this-issue-10">MSCs that relate to this issue:</h3>
|
|
|
|
<ul>
|
|
|
|
<li>None? Not sure.</li>
|
|
|
|
</ul>
|
|
|
|
<h2 id="sharing-drafted-messages-between-devices">Sharing drafted messages between devices</h2>
|
|
|
|
<p>Ever wanted to continue writing a message on your desktop, only to then having to copy the
|
|
|
|
message manually? This would allow you to automatically have your drafted message available on
|
|
|
|
other devices.</p>
|
|
|
|
<h3 id="mscs-that-relate-to-this-issue-11">MSCs that relate to this issue:</h3>
|
|
|
|
<ul>
|
|
|
|
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4146">MSC4146: Shared
|
|
|
|
Message Drafts</a></li>
|
|
|
|
</ul>
|
|
|
|
<hr />
|
|
|
|
<h1 id="important-to-mention">Important to Mention</h1>
|
|
|
|
<p>There are some things that I'd like to address in here that I explicitly didn't put into their
|
|
|
|
own categories, these include:</p>
|
|
|
|
<ul>
|
|
|
|
<li>The issue of State Resets</li>
|
|
|
|
<li>Trust & Safety struggles</li>
|
|
|
|
<li>Portable Identities</li>
|
|
|
|
<li>Relationship with Element</li>
|
|
|
|
<li>etc…</li>
|
|
|
|
</ul>
|
|
|
|
<p>Generally my thoughts on all of the above are quite similar, a lot of these issues are only
|
|
|
|
slowly being addressed <strong>due to a lack of funding.</strong> The Matrix Foundation has been
|
|
|
|
struggling to get a good source of income for a while now, to the point Element was given
|
|
|
|
ownership of Synapse under the AGPL so that they can make money from selling license
|
|
|
|
exceptions<a href="#fn3" class="footnote-ref" id="fnref3" role="doc-noteref"><sup>3</sup></a> to
|
|
|
|
try and fund important work that way, but even then the foundation is still largely dependant on
|
|
|
|
entities (e.g schools or other government-adjacent bodies) that do not care about core Matrix
|
|
|
|
work and instead only care about new features (that is why Polls exist in Matrix, but is only
|
|
|
|
supported by Element).</p>
|
|
|
|
<p>Without independent funding (from users, advocates or enthusiasts and alike) there is barely
|
|
|
|
anything the foundation can do on their own right now. Especially state resets is a hard problem
|
|
|
|
as it - to this day from my knowledge - is barely entirely understood, and fixes that have been
|
|
|
|
proposed would require <em>more</em> than just a new room version, which is already quite a hard
|
|
|
|
sell.</p>
|
|
|
|
<p>Of course I'd like to see these issues solved, but without our support that won't happen;
|
|
|
|
Especially when the attitude is always just “Matrix Sucks”, “just use XMPP” or “I'd like a
|
|
|
|
working protocol!”. It is <em>entirely counterproductive</em> to improving matrix to have such
|
|
|
|
an attitude. The same goes for proposing that the entire design of Matrix, where the DAG is
|
|
|
|
replicated across servers as part of decentralization, should be scrapped. That just does not
|
|
|
|
make sense as a point to <em>improving</em> Matrix that is <em>replacing</em> Matrix. Make your
|
|
|
|
own protocol at that point.</p>
|
|
|
|
<hr />
|
|
|
|
<h1 id="matrixs-place-in-the-modern-im-landscape">Matrix's place in the modern IM landscape</h1>
|
|
|
|
<p>Of course, there's some more reasons that I am writing this than just my love for Matrix; I am
|
|
|
|
writing this because the Instant-Messaging landscape right now looks <em>scary</em> to say the
|
|
|
|
least.</p>
|
|
|
|
<p>Left and right we have influential figures (ab)using their influence over their audience to push
|
|
|
|
things like Telegram, or try and discredit Signal's security using baseless claims, Network
|
|
|
|
effect keeps people locked in to insecure solutions, and governments around the world are trying
|
|
|
|
to undermine security and privacy for all. In a time like this, where influential figures are
|
|
|
|
abusing their power in this way, we need something <strong>open</strong>. We need something
|
|
|
|
where we do not need to worry that someone comes into the scene and starts to confuse everyone
|
|
|
|
by spreading targeted Disinformation campaigns with unknown motives, where one with power may
|
|
|
|
push forward dangerous clientside-scanning proposals that undermine encryption, and something
|
|
|
|
where we can be free in owning our identity.</p>
|
|
|
|
<p>In a way, it should be like E-Mail. Anyone can host a mailserver, anyone can provide one, anyone
|
|
|
|
can talk to anyone, and unless you're funneled into one specific server, you do not have to
|
|
|
|
worry that someone has been backdooring your communication this entire time.</p>
|
|
|
|
<p>I believe that Matrix is the best shot we have at this. It <strong>has</strong> growing pains, it
|
|
|
|
<strong>has</strong> issues, and the ecosystem has been struggling for a while, but without
|
|
|
|
support we aren't getting anywhere. We need something like Matrix.
|
|
|
|
</p>
|
|
|
|
<aside id="footnotes" class="footnotes footnotes-end-of-document" role="doc-endnotes">
|
|
|
|
<hr />
|
|
|
|
<ol>
|
|
|
|
<li id="fn1">
|
|
|
|
<p>Although, in Discord the badges are mostly for Discord Developers, or verified bot
|
|
|
|
developers or whatever.<a href="#fnref1" class="footnote-back" role="doc-backlink">↩︎</a></p>
|
|
|
|
</li>
|
|
|
|
<li id="fn2">
|
|
|
|
<p>There are indeed spoilers <em>for text</em> in Matrix, however there is no way - not
|
|
|
|
even a hacky workaround - to get media spoilers, letalone content warnings.<a href="#fnref2"
|
|
|
|
class="footnote-back" role="doc-backlink">↩︎</a></p>
|
|
|
|
</li>
|
|
|
|
<li id="fn3">
|
|
|
|
<p>Before anyone says it, <strong>no</strong>, this isn't a violation of some license,
|
|
|
|
most contributions came from Element or Element Employees anyway and I'm pretty sure
|
|
|
|
there is/was a CLA.<a href="#fnref3" class="footnote-back" role="doc-backlink">↩︎</a></p>
|
|
|
|
</li>
|
|
|
|
</ol>
|
|
|
|
</aside>
|
2024-06-24 13:57:30 +02:00
|
|
|
|
2024-06-25 21:47:39 +00:00
|
|
|
<hr>
|
|
|
|
<p>If you liked what you read, please consider donating: <a class="donate"
|
|
|
|
href="https://ko-fi.com/cyrus42">Donate
|
|
|
|
on
|
|
|
|
Ko-Fi</a></p>
|
2024-06-24 13:57:30 +02:00
|
|
|
</div>
|
2024-06-25 21:47:39 +00:00
|
|
|
</div>
|
2024-06-24 13:57:30 +02:00
|
|
|
</div>
|
2024-06-25 21:47:39 +00:00
|
|
|
</div>
|
2024-06-24 13:57:30 +02:00
|
|
|
</body>
|
|
|
|
|
|
|
|
</html>
|