Making Custom Profiles in Matrix More Useful
An overview of the UX design and technical implementation challenges faced when implementing "live-update" support for Profile Fields in Matrix.
For most of the history of Matrix, users have only been able to attach two data points to their profiles: display names and avatar URLs. This changed in August 2025 when Matrix v1.16 included support for Custom Profile Fields (specified by MSC4133).
But while clients could now set and get arbitrary fields, there was no mechanism for getting updates to changes in these fields. That made it unworkable to display fields in timelines or any other "live" UI elements. Profile elements could only really be shown if you specifically clicked on a user.
That changed this year when Element began to work on a feature designed to communicate "statuses". They desired the ability to communicate "I'm in a meeting" or "I'm on holiday" without needing to change your display name (and polluting every other room you're in with membership updates).
This short talk from Andrew and Aaron at Element details the history, UX design, controversies and technical scalability constraints of designing a live-updating system for profile fields across Matrix.
Andrew Morgan (anoa) is a Senior Software Engineer at Element, and a member of the Spec Core Team at the Matrix.org Foundation. He primarily works on Synapse, the Matrix homeserver implementation.
Principal Product Designer at Element