
Ask HN: Preferred chat program compromise between security and UX? - asdkhadsj
Recently I&#x27;ve been needing to switch from iMessage to something supporting Linux. My wife and I previously used Telegram, however I&#x27;ve never been sold on their security model. However, they do have one of the better UXs. I&#x27;ve wanted to try something like Matrix, but not heard great things on its performance.<p>So I&#x27;m curious to hear what you use HN. What do you use, what platform are you on, and what do you like&#x2F;dislike about it?<p>Appreciate any replies.
======
huguesdk
personally, i’m using matrix & riot with my family (including non-technical
people), some friends and coworkers. i chose it for 5 main reasons:

1\. it is an open standard based on free software

2\. it is based on history synchronization between servers instead of message
transmission between clients, so you can send messages seamlessly from any
device and have access to your conversation history (think git vs sms)

3\. you can use your own server to host your conversations (the conversation
history is replicated on the server of each participant)

4\. it has end-to-end encryption

5\. there is only one type of conversation, so the are no differences between
a one-to-one chat and group chat: a one-to-one chat is simply a group chat
with only two participants

i have my own personal server (old laptop at home), and the rest of my family
uses another dedicated server (other old laptop at my cousin’s home). friends
and coworkers use the matrix.org homeserver. the matrix.org homeserver can be
slow sometimes (because it hosts many rooms and has many connected users), but
messaging between our own servers is instant.

sure, it’s not (yet) as polished as mainstream apps. for example, currently,
with end-to-end encryption, one need to verify each device of each other
person on each of their own devices, which is not very user friendly (but this
is being worked on, so only one verification per person will be needed in the
future).

this said, it has nevertheless the most needed features. it has even some
features that mainstream apps lack. for example, if you’re a little technical
you can start using bridges. this allows to receive and send messages from/to
other messaging systems (irc, xmpp, slack, telegram, discord, sms,…) all from
within your matrix client.

------
Arathorn
Matrix project lead here; we've been making steady progress on performance
issues, and since we exited beta a few weeks ago
([https://matrix.org/blog/2019/06/11/introducing-
matrix-1-0-an...](https://matrix.org/blog/2019/06/11/introducing-
matrix-1-0-and-the-matrix-org-foundation/)) we now have much more bandwidth to
improve it. We were consciously following a "make it work, make it work right,
make it work fast" philosophy.

For instance, as of a few days ago we have a tentative fix for one of the
biggest causes of high RAM usage in Synapse (the reference server
implementation): [https://github.com/matrix-
org/synapse/pull/5480](https://github.com/matrix-org/synapse/pull/5480). If
this tests out okay in the wild it should land in the next release.

Meanwhile, my personal server idles at around 600MB of RAM (across a few
hundred conversations, some in quite large rooms), although there's room for
us to reduce that by at least a factor of 10.

It's important to understand that Matrix is effectively a system for
replicating chat history - it's more like USENET or Git than (say) XMPP or
IRC. As a result, the resource utilisation depends entirely on the
complexity/size of the rooms you participate in. A single person server where
that user joins thousands of public chatrooms with hundreds of thousands of
users is going to use a lot more RAM than a 10,000 person server where
everyone is in small private chats.

Finally, a lot of Matrix's reputation for bad performance comes from the fact
that the default sqlite database is not remotely optimised at all, and
performs horrifically badly as soon as you start federating with the rest of
Matrix. You _have_ to use Postgres these days. Also, if you do end up with a
heavily used server, you have to manually increase the cache sizing in the
config; it doesn't autotune the caches yet.

So to conclude:

* Run Python3

* Run PostgreSQL

* If your users are joining lots of large rooms, you'll need to manually increase the cache factor to avoid hammering the DB. Alternatively, you can now cap the size of rooms your server is allowed to participate in ([https://github.com/matrix-org/synapse/issues/5069](https://github.com/matrix-org/synapse/issues/5069))

...and you should be relatively fine.

~~~
asdkhadsj
Appreciate the info! Matrix does seem like the most likely for us.

Sidenote, has Matrix discussed priced offerings? Eg, I'm always concerned
about OSS projects funding. I'd love if Matrix offered a, for example,
purchasable hosted option that gave them a funding model beyond donations
_(which are problematic for obvious reasons)_. I know this is less of an issue
for self hosted FOSS, but still.

 _edit_ : Interesting, the Riot.im page has a link to Modular.im. I see it's
"from the creators of Matrix", does that fund Matrix too? /me continues to dig

~~~
Arathorn
So while Matrix itself is an open source project backed by a non-profit
foundation ([https://matrix.org/foundation](https://matrix.org/foundation)),
the team who started Matrix created a startup (New Vector;
[https://vector.im](https://vector.im)) in 2017 in order to hire the core
developers and ensure we could keep working on it fulltime (and also to
dogfood the protocol and ensure that you can build apps on it that people
consider useful enough to pay for). The Riot app
([https://riot.im](https://riot.im)) is made by New Vector, and Modular
([https://modular.im](https://modular.im)) is the hosting service New Vector
provides as a paid Matrix hosting offering (using Riot as the default client).
The proceeds from Modular go directly to paying the Matrix core devs employed
by New Vector, and so massively benefit the project. Sorry it's a bit
complicated; turns out that funding opensource is not trivial...

~~~
asdkhadsj
> Sorry it's a bit complicated; turns out that funding opensource is not
> trivial...

You explained it well, and you're definitely correct. Appreciate your time! I
look forward to being able to buy a tiny (ie 2 or 3 person) slice of
Modular.im :)

~~~
Arathorn
Small (<5 people) deployments are coming in the next few weeks. I'm using mine
already (and it's only using 190MB of RAM...)

