Skip to content

Suggestion: Structural design ideas around Spaces, quote reposts, and degraded experience (inspired by MSC4501) #1

Description

@mwnu

This is a rough set of design thoughts sparked by the underlying MSC4501 proposal, around how a Matrix-native social experience might be structured more cohesively.

Since events belong to rooms rather than a public square, I believe some functional trade-offs are necessary. Here's a rough design approach:

1. Use Spaces to contain everything
In Haven, personal pages, groups, and subscribed pages are all independent rooms. While the Haven frontend aggregates them, they appear scattered in ordinary clients. A better approach is to also group them under a dedicated Space in regular clients. The Space naturally falls into three categories:

  • Owned pages: You have full control—restrict who can subscribe, and set it as read-only (while others can still send reactions).
  • Subscribed pages: Other people's read-only rooms, purely as information sources.
  • Shared groups: Rooms where several users can post together, serving as small shared circles like a family group or friend group.
  1. Unified feed but retain room attribution
    A global waterfall feed that merges posts from all rooms in the Space, ordered by time, is great. However, each post should clearly indicate which room it originates from—this aids categorization and helps distinguish the same post when it has been cross-posted to multiple rooms.

  2. Rethink comments and reposts in a more "federated" way
    Given that Matrix lacks fine-grained, message-level access control, forcing a traditional comment section only makes management harder. My suggestion:

    • Replace conventional comments with "quote reposts" (repost-with-comment): When you want to comment on a post, the message is created as an independent event in your own social page room, with a link back to the original post. If the original author hasn't subscribed to you, you can optionally send them a room invite so they have a chance to see it—though whether they can actually join depends on both servers' federation settings.
    • Pure reposts: Copy the original content and append a link to the source. Reposts can be sent to one or more target rooms. Because the original link may not be accessible to members of the target room, duplicating the content is the safer approach.
  3. Graceful degradation for ordinary clients
    To accommodate clients that don't support social page features, the various quick-action buttons on posts should primarily use custom reaction schemes: for example, 💬 for "comment/repost-with-comment", and 🔁 for "repost". This way, the original author can intuitively see interaction counts in their own room, and users on plain clients can at least understand what's happening.

  4. Keep direct discussion inside Shared Groups
    Only in the third category—Shared Groups—should direct posting, quote replies, and in-thread comments be fully allowed. That's the genuinely suitable space for small-group, familiar discussion.

  5. Leave room for some customization
    It may also be worth allowing users to add custom shortcut buttons via scripts, for actions like one-click translation, content reminders, or "bookmark" (which essentially means forwarding to a private, ordinary room).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions