⚠️ This now lives at https://github.com/RoootTheFox/matrix-spec-proposals. This document is outdated.
A lot of users, especially those switching to Matrix from other platform (e.g. Discord) are finding Matrix lacking for not providing a way to write information about themselves, e.g. their interests, and having others be able to view that. Several clients already have their own, client-specific implementations of a biography field via extended global profiles, creating a split in the ecosystem. To bring back standardization, this proposal defines a standardized biography field on top of MSC4133.
This proposal took writing inspiration from MSC4247 and was heavily inspired from the biography formats of the Sable and Commet clients and the Matrix spec for room messages. (this paragraph is subject for removal as it isn't really part of the proposal. fits better in the pull request comment later)
Profiles may have an optional m.biography field as object. These fields can be fetched through the profile API endpoints. Clients should display the biography of a user in their respective user popup/profile view UI.
{
"m.biography": {
"body": "hello world!\n\ninterests:\n- programming\n- matrix\n- sleeping\n- petting cats",
"format": "org.matrix.custom.html",
"formatted_body": "hello world!<br/><br/>interests:<br/><ul data-md=\"-\"><li><p>programming</p></li><li><p>matrix</p></li><li><p>sleeping</p></li><li><p>petting cats</p></li></ul><br/><img data-mx-emoticon src=\"mxc://fomx.gay/ICgRWFY6HWvMVVrHRqr7MYMLiTCgWxpl\" alt=\"bwaa\" title=\"bwaa\" height=\"32\" />"
}
}The body field should hold a plaintext representation of the users' biography, similar to room messages.
Clients can optionally set the formatted_body field to an HTML-formatted representation of the body in the same format as formatted messages, in which case the format field has to be set to org.matrix.custom.html.
When rendering a user's biography, the formatted_body should be preferred if set, but clients are free to render the plaintext representation in body instead.
Unsure?
None, really. Maybe linking a pastebin URL in your username?
Malicious actors could set an unreasonably long bio, potentially lagging or even crashing clients, if length stays unlimited.
Clients implementing this MSC early may use the profile key gay.fomx.biography.
This MSC builds on MSC4133.