X Tutup
Skip to content

MSC4427: Custom banners for user profiles#4427

Open
cyrneko wants to merge 4 commits intomatrix-org:mainfrom
cyrneko:main
Open

MSC4427: Custom banners for user profiles#4427
cyrneko wants to merge 4 commits intomatrix-org:mainfrom
cyrneko:main

Conversation

@cyrneko
Copy link

@cyrneko cyrneko commented Feb 25, 2026

Rendered

Signed-off-by: Alexia cyrus42@disroot.org

@cyrneko cyrneko changed the title MSC0000: Custom banners for user profiles MSC4427: Custom banners for user profiles Feb 25, 2026
@turt2live turt2live added proposal A matrix spec change proposal client-server Client-Server API kind:feature MSC for not-core and not-maintenance stuff needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. labels Feb 25, 2026
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Implementation requirements:

  • Client (sending)
  • Client (rendering)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question, for an implementation to be valid...can it be one that is compatible but uses a different field?

I've just found out that Commet apparently implements this, with the same semantics, however uses chat.commet.profile_banner instead of eu.cyrneko.msc4427.banner / m.banner

I assume not, but I thought I'd ask just in case

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've pushed a commit that makes the unstable prefix chat.commet.profile_banner

This means there is now two known implementations for this feature:

respective commits:

Both of these can set a banner as well as display it on profiles.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question, for an implementation to be valid...can it be one that is compatible but uses a different field?

Sure, as long as the spec your describing in this MSC matches an implementation it's valid. The reason for this check is to ensure that the proposal works and the field names do not need to align for that.

And there is precedence for using a existing field name as a unstable key 👍

from `eu.cyrneko.msc4427.banner_url` to `chat.commet.profile_banner`

Clients can then use this field to load user banners.

## Potential issues
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would we benefit from a recommendation for the banner dimensions or is this something you'd expect to work itself out organically across clients and users?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this will probably end up being an implementation detail, though I feel guidelines around aspect ratio would make sense probably? Something along the lines of perhaps 1:√21 or another aspect ratio

Footnotes

  1. okay, I admit, that's me being a nerd for DIN standard paper sizes. There isn't really necessarily a reason I suggest this ratio in particular

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe worth comparing with other platforms. From a quick check:

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can see the point on both to be honest. Mandating an aspect ratio is almost certainly going to be impossible, as clients require their own agency about how to display the banner.

That said, perhaps some wording that banners should be landscale an approximately 3:1 (clients MAY use techniques such as letterboxing or scaling if a banner doesn't fit)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that sounds good! I'll add that to the doc

if I don't forget at least...

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did, indeed, forget!

I'll set a reminder with a link to this...

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

Labels

client-server Client-Server API kind:feature MSC for not-core and not-maintenance stuff needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. proposal A matrix spec change proposal

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

X Tutup