Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spacetimelines (or simply aggregated timelines) #927

Open
1 task done
lboklin opened this issue Feb 10, 2022 · 3 comments
Open
1 task done

Spacetimelines (or simply aggregated timelines) #927

lboklin opened this issue Feb 10, 2022 · 3 comments
Labels
enhancement New feature or request

Comments

@lboklin
Copy link

lboklin commented Feb 10, 2022

The Problem

A lot of spaces suffer from having several low-activity rooms. In isolation, they seem kind of dead, which may discourage participation out of stage fright or assuming you won't get good responses anyway.

On top of that, Nheko could use a highly unique client-specific killer feature that sets it apart from all the other clients.

The Solution

A novel feature like aggregated spacetimelines would make a community feel more active by combining activity across an entire space. Events would be visibly tagged with the room of origin, which would make rooms feel more like a way to categorise message topics than isolated places. You could participate directly by sending messages into any one of the rooms through any of the following methods:

  • /<room> <msg> (with helpful autocomplete for available room address, of course) - choice could persist or not
  • selecting the room from a menu that expands from a prominent button-tag next to the composer - choice persists
  • pressing one of the room's visible tags in the timeline - choice persists
  • replying to a message originating from the room - choice could persist or not

You could have various extra client-side QoL features and settings, such as:

  • choosing a subset of rooms (or subspaces) to include
  • displaying events from publicly visible rooms of the space without joining them (should maybe even be the default?)
  • sending messages into the space's timeline itself as a form of meta/global-chat feature (but I don't know if that's acceptable, given that no client AFAIK even exposes that timeline)
  • choosing a default/meta room for when there's a specific meta or general chat room for the space

I've ideated around the concept of cross-messaging before, but part of the motivation for such a feature could be satisfied by a client-side feature like this. The best part is that it doesn't depend on any new spec features, since the timeline is determined solely by the rooms in a given space.

Alternatives

Aggregated timelines don't have to be intrinsically tied to spaces, though the more you decouple it from features in the matrix spec the more reliant you are on local user configuration which could be lost/reset unless manually synchronised between devices or accounts. Could have both, though: aggregated timelines as an independent client feature which defaults to displaying spacetimelines.

Additional context

Examples of this type of feature can be seen in many MMORPGs where you may have a chat that displays messages from one or more channels, distinguished usually by a tag, icon or text colouring.

The equivalent of creating a tab for specific channels in an MMORPG could be to

  1. create private spaces specifically for the purpose of aggregating the timelines of certain rooms, and/or
  2. choosing a subset of all the rooms in a space to include in the spacetimeline via client-specific settings.

Happens in the latest version

  • Yes, this feature is still missing.
@lboklin lboklin added the enhancement New feature or request label Feb 10, 2022
@lboklin
Copy link
Author

lboklin commented Feb 10, 2022

It doesn't seem like we're getting throoms (thread rooms), given that implementing threads as part of the spec seems favoured by the main developers (revealed at FOSDEM 2022). But in an alternative universe where we have rooms-as-threads and spaces-as-thread-origin-rooms, this feature would feel like a natural complement to it by exposing a timeline of activity across all (sub)threads in a given room.

In this universe, however, it would still complement any eventual implementation of threads by encouraging a less obscuring and isolating way of organising topics (assuming most clients end up tucking away thread discussions in a traditionally controversial manner a la Slack and Discord).

@lboklin
Copy link
Author

lboklin commented Feb 10, 2022

Regarding UX: I would suggest displaying the spacetimeline when a space is selected in the left side room panel. Mostly it would look like a normal timeline, except that an event's room of origin would be displayed next to its author in the form of a room icon, name or both (and either colour-coded or not). I'm being deliberately ambiguous by saying "next to" because there are many ways to do it.

<avatar> <username> in <icon> <room>
  <message in $room>
[<icon> <room>] <avatar> <username>
  <message in $room>
-- <icon1> <room1> --------------
<avatar1> <username1>
  hi room1ers
<avatar2> <username2>
  👋
-- <icon2> <room2> --------------
<avatar1> <username1>
  hello room2ers
<avatar3> <username3>
  hello there
<icon1> | <avatar1> <username1>
        |   hi room1ers
        | <avatar2> <username2>
        |   👋
--------|------
<icon2> | <avatar1> <username1>
        |   hello room2ers
        | <avatar3> <username3>
        |   hello there

The composer would just have an extra indicator for which room you're sending to.

@deepbluev7
Copy link
Member

Having some kind of sneak peak into rooms from the space overview does sound interesting, indeed. But I'll probably won't have time for that in the near future and it is fairly complex. But it might be a good thing to add to make spaces feel more alive!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants