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.
-
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.
-
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.
-
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.
-
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.
-
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).
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:
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.
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:
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.
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.
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).