Libli, tiny matrix client for building public libraries

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • Yes, decentralized through federation like Mastodon.

    One other cool think about it, each "message sent to an user or a room", are "events".

    And an event can be have any sort of (json) data to it.

    Through element.io (the main matrix client, developed by Matrix people), you can type `/devtools` in a chat, to test sending "custom events" to a room.

    As a developer, it means you can "hack" matrix, to make it store whatever data you'd like.

    If you'd like to look at some javascript, this is the code related to matrix that makes libli run https://gitlab.com/sctlib/matrix-room-element

    Otherwise this page has a lot of resources https://matrix.org/discover/

    cheers!

  • matrix-spec-proposals

    Proposals for changes to the matrix specification

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • Matrix-CRDT

    Use Matrix as a backend for local-first applications with the Matrix-CRDT Yjs provider.

  • 1. This is complicated. There is a notion of power_level, which you can set to different events. So you can set "send message" to power level 30, and any user with a "power level" of 30 or more will be able to send messages. Those power levels (and the required level to send an event) are granted by the room creator.

    There is, however, no power_level associated with reading messages. I think you need to be joined to a room to send messages, and to be joined, you need to be able to read messages by design. So the "inbox" model doesn't seem representable to me. But maybe I'm missing something!

    2. Yes. Events can refer to prior events to modify them, e.g. you can "edit" a previous message by appending a new message of type "msg.edit" (made up type, not sure what the exact it), specifying the old message id, and the new text. For matrix-based CRDT, see Matrix-CRDT[1], a Yjs backend using Matrix.

    [1]: https://github.com/YousefED/Matrix-CRDT

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts