mirror of
https://codeberg.org/cyrneko/pages.git
synced 2025-05-28 06:07:09 +00:00
511 lines
22 KiB
HTML
511 lines
22 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>Alexia: Matrix needs an Instant-Messaging upgrade</title>
|
|
<link rel="stylesheet" href="../../styles/styles.css" />
|
|
</head>
|
|
|
|
<body>
|
|
<div class="wrapper">
|
|
<div class="center">
|
|
<div class="content">
|
|
<div>
|
|
<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>
|
|
|
|
<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>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|