Computer :(

/home/rrix:blog:tags:cgit:rss

Matrix and IndieWeb: A match made in heaven? 👼

One of the core benefits of Matrix is the fact that, at the end of the day, you own any chat room you participate in. There is no central authority that can shutter a chat, if you run your own homeserver, your homeserver and the homeservers of others make sure the rooms you care about stay alive. This is an incredibly important property of any ecosystem I choose to participate in, more and more -- I simply do not trust non-caring third parties to reliably power infrastructure that I build my personal life around. I don't want to trust a Google or a Facebook to not shutter their products in a way that is inaccessible to me, I don't want to trust them to keep my conversations safe and private.

Real time chat has not had the bring-your-own-server philosophy baked in to its core since its beginning the web has. Sure, XMPP tried to instill a sense of ownership, but for all intents and purposes, it has failed in that regard, both technically and philosophically.

The web started out with a bring-your-own-server philosophy and we have lost that over time, though a small group of folks are beginning to bring these ideals back with a focus on modern usability and 3rd Party Integrations via the IndieWebCamp movement. Though my views on usability heavily differ from mainstream consensus, the overarching goals of IndieWebCamp speak to me at the core of my being:

  • Your content is yours
  • You are better connected
  • You are in control

These goals line up tightly with the goals behind Matrix, and I think a point of intersection can be found. Like IndieWeb's "You are better connected", A core tenant of Matrix's design is the ability to bridge other networks, such as IRC and XMPP as a way to create a network effect easily. Indeed, I use my Matrix homeserver as an IRC bouncer, and it has subsumed nearly all of my real-time communication, except for work's chat service and a little bit of Telegram. It can also be looked at as a generic data layer, as polynomial has shown.

In "No More Sharecropping!" Shane Becker writes about his ideal setup for an IndieWeb site. I see many parallels between this and the core ideals that Matrix is striving towards. Matrix is an attempt to reclaim ownership over an incredibly important aspect of our lives and is doing a damn good job at it, at least in my case.

Matrix provides easy upload and storage of images, audio, video and of course text I wouldn't suggest storing long-form inside of a Matrix homeserver, of course, but as a data plane it seems more and more useful. Using Matrix as a data layer for all my communication short-form communication does not seem so out of the question.

I've set up RSS pull-based inbound data to great effect, the opposite is mostly done, as well. As part of my body computing system work, I've a very minimal Org-mode assistant working over Matrix. It is nowhere near ready, but after reading Shane's article, I feel like an additional feature flow could be quite nice:

  • I configure public.org to publish as RSS and HTML per "Blogging from Emacs"
  • I post an image, or audio or short text to the bot
  • The bot creates a note linking to the image, or audio in public.org
  • The bot calls (org-publish-project 'public) which pushes my new image, audio or text to a page with proper h-entry tags for notes.

Simple, easy blogging using Matrix and the tools I already use; if I am at a laptop, I can wrap all of this in to a single function easily. Hell, if I was feeling extra crazy, the bot could weasel its way in to the internals of twittering-mode and push tweets or other notes back in to the private chat, providing a two-way gateway that is not reliant on any one service to be up, other than my own Matrix homeserver and my own web server.

This is one small place where Matrix and IndieWebCamp intersect, I feel like finding interfaces between the two of these aren't difficult at all, given they both, at their core, deal with taking control and ownership over your communications in an easy, intuitive fashion.

Apropos to nothing, my blog now supports webmention, as a sort of limited commenting, using WebMention.io and Bridgy to provide these features to my otherwise static site. I'm adding 3rd party dependencies to my site, but this sort of progressive enhancement isn't the worst thing -- if one of these services go down, I just go back to bridging these things myself.