Cerulean: Experimental micro-blogging app for Matrix
matrix.org
matrix.org
Worst case scenario logging into a Mastodon client is that it wrecks my microblogging data. Worst case scenario logging into a Matrix microblogging app is that it wrecks my microblogging data and drops my admin privileges on all of my Matrix chatrooms.
OAuth scope by room type, maybe? https://github.com/matrix-org/matrix-doc/pull/1840
Sure, but they could in the future, right? Couldn't a homeserver in theory generate a more restricted credential for which it would reject e.g. "PUT /rooms/<roomid>/send/..." requests after checking the room type?
None of the machinery around that exists now, but it feels like it could be done.
(FWIW, I did write MSC1840 with this use case in mind.)
Cerulean is looking great! Does it support e2e threads? I'm about to take a stab at implementing e2e in my application and I'm curious how much overhead it is.
On Android I quite like SchildiChat, which is a simple-at-first-look client.
Meanwhile, the nice thing about Matrix is you can use whatever app you like - e.g. SchildiChat is a fork of Element Android, FluffyChat's good too, so use whatever floats your boat.
Meanwhile, happy to answer any questions about the Cerulean mad science experiment :)
I am curious how this experiment fits with the longer term goals for the project. Do you see Matrix as a social media protocol in addition to chat? If so, do you have plans to integrate with the fediverse/speak ActivityPub?
I think something like Cerulean may even be a better idea. It would probably be straightforward to just make every blog post create a corresponding Cerulean/Matrix post and then have a link to it automatically inserted into the bottom of the post.
One question I have, though, is how performant it is to have thousands and thousands of these small Matrix rooms around. Are rooms that lightweight? One for each post seems like it could be a lot, but I'm not familiar with the intended internals for servers to use in how they represent rooms.
Totally agreed that turning Cerulean into a Disqus-clone would be awesome; hopefully someone will pick it up and do so!
Well, if you’re gonna draw the line there... React alone and the tooling it requires already gives you about 1400 dependencies. That is not what people mean by “zero dependencies”, especially choosing the framework that is one of the worst offenders.
The web framework is irrelevant.
When you throw around FUD like this, can you please also give us some credible sources? You can use cdnjs to get react and react-dom in exactly 2 .js files.
$ npm install https://github.com/matrix-org/cerulean
[71 lines of logs]
added 2371 packages from 808 contributors in 62.487sSo? jiofih's claim was about "React alone and the tooling".
but seriously, the amount of deps react has is really not the point i was making on the blog post...
waves arms helplessly
fixed - thanks akx (and congrats on the first PR to cerulean :D)! https://github.com/matrix-org/cerulean/pull/30
Entirely different beasts.
Element is the only application supporting all Matrix features, but it's look and feel are off, it's speed leave things to be desired and I'm still getting issues with fetching the right keys for a chatroom on some of my devices. The file picker on mobile is wonky, some very basic features (like adding a caption to an image you're sending) just don't work. I'm definitely not convincing anyone to consider this over the existing, isolated, closed-source messaging applications out there.
Then there's the fact that there's very little chat clients that support most of the protocol, especially with encryption. To combat this, you can run pantalaimon if you can ever get it to work (its dependency on things like dbus makes it very hard to run well on a VM or in a container) to add encryption to more well-integrated chat clients like Fractal.
I love the premise and the idea behind Matrix, but I do fear that the focus on expanding and experimenting will eventually prevent it from reaching the critical mass necessary to ever be used outside of the enthusiast circle. All the (optional?) additions to the protocol also make me fear that Matrix will end up dead like XMPP, with different features implemented across different applications all in a way that things just don't work well together.
Why put all of this work into running a daemon 24/7 on your phone that will end up sucking battery to run an app with bad usability in peer to peer mode? What's the end goal? I just want to rid myself of Whatsapp and Telegram, is that even a valid use case for the Matrix system anymore? Should I start looking in other directions?
Meanwhile, just because one person (kegsay) spent a few weeks putting together Cerulean doesn't mean that the other thousands of people in the Matrix ecosystem were idle. For instance, Fractal merged matrix-rust-sdk support 2 weeks ago, which implements full E2EE (https://gitlab.gnome.org/GNOME/fractal/-/merge_requests/626), so your complaints about pantalaimon should shortly be irrelevant. (Plus it seems pretty miserable to complain about pantalaimon's dependencies; the fact that the project exists at all as an E2EE stopgap is unusual - XMPP has no equivalent for instance, as far as I know). In terms of other clients supporting E2EE: weechat-matrix, Mirage, FluffyChat, Seaglass, Nheko, Gomuks, Daydream and more have support. Complaining that there are clients which don't have E2EE is like trying to denounce the Web because there are browsers out there which don't implement HTTPS.
Element Android still has work to be done, as you've pointed out, but it is growing rapidly (https://github.com/vector-im/element-android/graphs/contribu...) and if development continues at this rate you should see perf, encryption bugs (almost all caused by https://github.com/vector-im/element-android/issues/2518), and even the "wonky file picker" and "off look and feel" and "captioned images" fixed.
Ironically, Cerulean is the first Matrix client to implement captioned images (after a fashion), so your captioned images on Android might benefit directly from Cerulean's work there...
XMPP isn't dead at all. OMEMO offers all the benefits of Signal's double-ratchet encryption and it's supported by at least one good client on every platform. Both ejabberd and Prosody are actively maintained servers, and there are still over a hundred XMPP hosts with open public registration. [And countless other hosts that aren't public.]
And it's way way way faster than Matrix. The servers are lightweight and don't require tens of GB of RAM, and the modern clients (like Dino and Conversations.im) are quick and snappy.
(Because I need to be a bit more confused!)
> Matrix is an open standard for interoperable, decentralised, real-time communication over IP.
> Element is a new type of messaging app. You choose where your messages are stored, putting you in control of your data. It gives you access to the Matrix open network, so you can talk to anyone.
> Cerulean Studios was officially founded in 2000, the same year Trillian started its long journey as an interoperable instant messaging client.
> Trillian[0] is modern and secure instant messaging.
> Cerulean: a highly experimental new microblogging app for Matrix
(also, microblogging is sufficiently far from Trillian that we assumed nobody could get confused. there’s a lot of shades of cerulean out there.)
Also, if payments can be done, that would be awesome, though it seems that is not something Matrix is trying to achieve?
Most other production deployments of Matrix are backed by Synapse, which is out of beta, and which scales horizontally via Redis: https://matrix.org/blog/2020/11/03/how-we-fixed-synapses-sca...