-
-
Notifications
You must be signed in to change notification settings - Fork 98
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
Expose metadata about a homeserver, useful for server discovery and general experience #1258
Comments
+1 all the way. Ironically this has a lot of overlap with our first ever Synapse bug (back when we were using JIRA before moving to GH issues): matrix-org/synapse#1199). It's more than frustrating that onboarding/polishing features like this get forever bumped by bugs or major new core functionality. |
Here would be a list of fields.
|
I am also thinking about making this generic enough to not be bound to Matrix specifically, but being usable by other federations, including Mastodon. I just pushed most of the above contents to https://github.com/kaiyou/wellfed, hoping to implement this on Mastodon, which I know a bit better than Synapse for now. |
This sounds like an amazing feature. For the |
I do not believe any network, be it Matrix, Mastodon or even Jabber will usefully distinguish bridged users from bots. Those are basically service users, and largely consist of bridged users in Matrix, plus a couple bots. I agree about distinguishing Also, I will try and write a first version this week of a list website for manifests being crawled from multiple servers. |
Context
I was thinking about the way the Mastodon community handled the general server discovery issue, and if we could profit from that. Generally speaking, the problem was solved late on Mastodon and two separate mechanism are in place:
instances.social
.Unfortunately, the declarative bit is what causes most of the bias and I read that most Mastodon users where either choosing a server recommended by a friend/community/company/whatever, which is good, or one of the flagship instances, which is less good for distribution.
Goals
I think it would bring some consistency to the Matrix federation if we could have the following set of resulting properties:
Technical implementation
I think all of the goals can be met with a single and pretty simple feature: a client/server API endpoint that displays the server metadata. These metadata could be setup in configuration first, and simply displayed as a JSON dictionary. All fields would be optional of course.
Some of the metadata would be normalized, including:
Some fields would have a more flexible form:
Regarding announcements, I was simply thinking that among contact points, there could be a "communication" type, and that clients could suggest the user joins that room for announcements. Or maybe the client could silently join that room and display messages in a special way that makes them look a bit more like announcements.
Resulting experience
Matrix clients could first display relevant metadata to the users of a homeserver, for instance contacts could be included on the homepage, as well of the entrypoints that currently make the list of general purpose rooms. If the homeserver becomes unavailable, the client could display technical contact information, when reporting an illegal message, the client could display legal contacts, etc.
On top of that, a third party, or many third party fwiw, could build an instance list without the homeserver owners having to explicitely register, thanks to the flag that tells whether or not the server should be publicly listed. These lists could be consolidated with technical data, including the current server version, average response time from various places in the world, average reliability, and basically everything that Hello Matrix has been doing for some time now.
Finally, clients could use those lists and consolidated meta to perform searches. Then, upon registration, the user could be greated with a couple fields to fill in, then a list of candidate servers.
The text was updated successfully, but these errors were encountered: