Gitter feature parity overview issue
In the long-run we want Element to take-over for Gitter because we don't want to support both platforms. In order to have Element be a suitable successor, we want to make sure all of the feature functionality people are used to on Gitter is available in Element. If you want to read more context behind this, the Matrix blog post has great detail. All of the Gitter content will be available on the gitter.im Matrix homeserver to live on.
Feel free to edit this list with more features, details, and links(MSC's, etc) as you think of them. We can split this out individual issues once this list has a few more iterations.
Gitter features needed in Element
- [x] Communities
- MSC: This is currently being implemented in Matrix as spaces https://github.com/matrix-org/matrix-doc/pull/1772
- [x] Backfill existing message history
- MSC2716
- Gitter has a huge archive of message history and we want to migrate all of that over to the Matrix rooms
- [x] Need to increase the volume size on the gitter.im homeserver to accommodate all of the messages, https://github.com/matrix-org/matrix-hosted/issues/3865, https://github.com/matrix-org/matrix-hosted/issues/6793#issuecomment-1357924751
- [x] Tune Synapse to handle the import load, https://github.com/matrix-org/matrix-hosted/issues/6793
- The actual import process:
- Import script: https://gitlab.com/gitterHQ/webapp/-/merge_requests/2313
- [x] https://gitlab.com/gitterHQ/webapp/-/issues/2609
- [x] https://gitlab.com/gitterHQ/webapp/-/issues/2857
- [x] https://gitlab.com/gitterHQ/webapp/-/issues/2858
- [ ] ~~Do we worry about notifications and emails?~~
- Emails for Twitter are currently not updated with the Twitter SSO config in Synapse (https://github.com/matrix-org/matrix-hosted/issues/6901)
- Not worried about it. Active users will be able to sign-in to Element and update their email as needed
- [x] Threading (threaded conversations)
- [x] Support Math/LaTeX message syntax
- MSC2191
- There is a
Render LaTeX maths in messageslab feature in Element
- ~~GitLab/GitHub based permissions for a room~~
- MSC: SSO logins are being looked at in https://github.com/matrix-org/matrix-doc/pull/2858 (social login)
- https://ems.element.io/guides/openid-connect#gitlab
- This doesn't seem strictly necessary. We can make rooms private and the permissions can flow from spaces to inherit.
- The Gitter
GH_REPO_PUSHpermission foradminson Gitter was always a bit flawed and too permissive to all of the contributors. People often switched this over to manual to give only a select few control of the Gitter room.
- [ ] GitLab/GitHub activity as a first-class citizen in a room’s side-panel
- All of the widget stuff happening in the Element/Matrix side these-days, seems perfect
- https://github.com/Half-Shot/matrix-hookshot
- https://github.com/matrix-org/matrix-hookshot/issues/631
- ~~GitHub/GitLab issue decoration (popover of title/description when you hover link, open/closed/merged -> green/red/purple status)~~
- Not much of a value add 🤷♀️. We could improve the link previewing if it's not great for GitLab/GitHub
- [x] Performant load times (seconds to load into Element)
- Bundle size
- Lazy load
- There have been some huge improvements recently although this could still be better.
- [x] Public static archive (indexed by search engines)
-
Update: This is now covered by https://archive.matrix.org/
- https://github.com/matrix-org/matrix-public-archive is now taking up the mantle here 🏃
- Similar to https://view.matrix.org/
- https://github.com/vector-im/element-web/issues/7677
- Related to MSC3030
- Use Hydrogen to server-side render a page with all of the content for the date given
-
Update: This is now covered by https://archive.matrix.org/
- [x] Anonymous users(NLI) can also view a room
- This is already in Element, just visit https://app.element.io/#/room/#matrix:matrix.org
- [ ] Sidecar for embedding a chat room on your own website
- https://github.com/matrix-org/matrix-public-archive/issues/157
Extras
- Bridge information spec for indicating room is from Gitter in the Element UI
- MSC: https://github.com/matrix-org/matrix-doc/pull/2346
- User badges on the Matrix-side to show that user is from the Gitter network
- We can use the existing iteration of community flairs
- Related MSC: https://github.com/matrix-org/matrix-doc/pull/1772/files#r520808696
- Portable identities so MXID's can match the Gitter username and we can handle renames seamlessly, https://github.com/matrix-org/matrix-doc/pull/2787
- Currently, we have to have MXID's as
@username-id:gitter.imand we just key off of the Mongo ID - This could also allow people to control their
@*:gitter.imMXID from their real Matrix account and appear completely normal on Gitter (as discussed at https://gitter.im/gitter/gitter?at=5ff8f0befe007479e4fda491)
- Currently, we have to have MXID's as
- MSC2162: Signaling Errors at Bridges, https://github.com/matrix-org/matrix-doc/pull/2162
- Room peeking (see room messages without joining) (peeking over federation)
- MSC: https://github.com/matrix-org/matrix-doc/pull/2753
Sunset
After Gitter shuts down, we want the experience of accessing your same Gitter content on Matrix just as seamless.
- Let people free-for-all on the
gitter.imhomeserver (another freematrix.orglike server)- People login with social like before and an application service (AS) can invite them to the same room membership, https://github.com/vector-im/sre-internal/issues/1754, https://github.com/matrix-org/matrix-hosted/issues/6901
- Gitter branded Element instance, https://github.com/matrix-org/matrix-hosted/issues/6824
- Setup redirects to rewrite the old Gitter URL to Matrix room alias, https://github.com/vector-im/sre-internal/issues/1755
- As discussed in an internal sync (2022-05-19)
- Also discussed in this internal sync (2022-12-01)
Previous after Gitter sunset idea: push people to their own homeserver
- [ ] Sign in with GitLab, GitHub, Twitter -> automatically bootstrap their
matrix.orgaccount and be signed in- This way, we don’t have to pay for beefing up the
gitter.imhomeserver with people trying to join big rooms - We want the experience to be easy for user with no knowledge of Matrix. They should just need to sign in with GitLab/GitHub like they did with Gitter and we will handle the Matrix user creation and plop them in. This will also add admin permissions for people in the rooms they were admins in.
- People may sign in and get the automatic Matrix.org account created but want to access their rooms from another Matrix account. We should also have a migration utility to be able
/migrate_room_membership_to @xxxand have it invite their other user to the same rooms.- EMS has a generic MXID migration tool we can point people to, https://ems.element.io/tools/matrix-migration
- Instead of pushing everyone to
matrix.org, maybe suggest EMS for your own homeserver or maybe P2P if that's mature in time. The one problem with this flow is it would probably be super cumbersome and clumsy for someone not familiar with Matrix, e.g. "Why do I have to create a server if I just want to sign into Gitter?"
- This way, we don’t have to pay for beefing up the
Master migration rollout plan
- [x] Import all messages from Gitter -> Matrix, https://gitlab.com/gitterHQ/webapp/-/issues/2609
- [x] Sync membership in all live Matrix rooms, https://gitlab.com/gitterHQ/webapp/-/issues/2857
- [x] Sync membership in all historical Matrix rooms, https://gitlab.com/gitterHQ/webapp/-/issues/2857
- [x] Sync admin permissions to all live and historical Matrix rooms
- [x] Pre-announcement cutover blog post, https://docs.google.com/document/d/1WNuQ3s8dNn7uxdkG515Hnl07RhnCrXC7jmUP1r6czJA/edit# -> https://blog.gitter.im/2023/01/16/gitter-is-going-fully-native-matrix-in-feb-2023/
- [x] Link pre-announcement from announcement section of the left-menu
- [x] Ensure live room points back to historical room via MSC3946,
- https://gitlab.com/gitterHQ/webapp/-/issues/2858
- https://github.com/vector-im/element-web/issues/24262
- [x] Inject social provider information into Synapse, https://github.com/vector-im/sre-internal/issues/1754
- [x] Setup
app.gitter.imwith the Gitter branded Element instance, https://github.com/matrix-org/matrix-hosted/issues/6824 - [x] Setup
/.well-known/matrix/clientso people can entergitter.imon the Element sign-in page- Add
/.well-known/matrix/clientfor Matrix clients in thewebapp, https://gitlab.com/gitterHQ/webapp/-/merge_requests/2336 - https://github.com/vector-im/sre-internal/issues/1754
- https://github.com/vector-im/sre-internal/issues/1781
- Add
- [x] Update Matrix appservice registration to not have exclusive control over the users (make sure updated on EMS), https://github.com/matrix-org/matrix-hosted/issues/6979
- [x] Remove custom Synapse patches used to optimize during the import process, https://github.com/matrix-org/matrix-hosted/issues/7144
- [x] Deploy latest Element which includes some updates for Gitter, https://github.com/matrix-org/matrix-hosted/issues/7148
- [x] Allow anonymous preview of rooms on
app.gitter.im, https://github.com/matrix-org/matrix-hosted/issues/7150 - [x] Enable social login on
app.gitter.im - [x] Blog post explaining the Gitter -> Element/Matrix transition, https://docs.google.com/document/d/1s05BHAz-EFKktfBZ3BD2j5ojR2xIwDR13t_6XiNdI_M/edit#
- [x] FAQ document we can link wherever
- -> https://blog.gitter.im/2023/02/13/gitter-has-fully-migrated-to-matrix/
--- Cutover on 2023-02-13 ---
- [x] Update Gitter homepage to direct people to
app.gitter.imso all new people go in via Matrix- New design: https://github.com/vector-im/design/issues/35
- Can we host this not on current AWS infra as some static HTML (static site generator)? https://github.com/vector-im/sre-internal/issues/1781
- -> Updating the
webappin the interim: https://gitlab.com/gitterHQ/webapp/-/merge_requests/2401
- [x] Disallow sign-in to Gitter itself. Update sign-in page to point to
app.gitter.imto better direct Gitter desktop users to the right place- -> https://gitlab.com/gitterHQ/webapp/-/merge_requests/2404
- [x] Also need to stop people generating tokens from their already created OAuth apps. Probably cut-off token exchange endpoint.
- -> https://gitlab.com/gitterHQ/webapp/-/merge_requests/2404
- [x] Disallow sign-in on https://developer.gitter.im/ to stop people from generating new tokens
- -> https://gitlab.com/gitterHQ/developer-gitter-im/-/merge_requests/37
- [x] Again -> Inject social provider information into Synapse, https://github.com/vector-im/sre-internal/issues/1754
- Resume dump from
gitterUserId=63bc7a736da0373984af769a(small amount of overlap from our last dump) - Resume dump from
gitterUserId=63e9a3486da0373984be49f7
- Resume dump from
- [x] Invalidate all Gitter access tokens so people get a 401 and are redirected back to the home page. People will then stumble back in via
app.gitter.im- This will result in a confusing hard cut-off for the Gitter iOS and Android apps which have been deprecated since 2020-11-20
- When we invalidate all tokens, this will also break people's scripts/bots. Might just have to rip off the band-aid on this one.
- [x] Setup redirects from old Gitter URL scheme to Element/Matrix location, https://github.com/vector-im/sre-internal/issues/1755, https://gitlab.com/gitterHQ/gitter.im/-/issues/9
- -> https://gitlab.com/gitterHQ/webapp/-/merge_requests/2406
- [x] Stop Gitter unread emails from going out, https://gitlab.com/gitterHQ/gitter-infrastructure/-/issues/261
- [x] Shutdown the IRC bridge, https://gitlab.com/gitterHQ/gitter-infrastructure/-/issues/262
- [x] Remove Android and iOS apps from the app stores, https://github.com/vector-im/sre-internal/issues/1854
- [x] Stop all public traffic to AWS Gitter infra
- Be mindful that people still need to access the Gitter homepage in case we're still serving that from the Gitter infra
--- Cleanup ---
- [x] Archive Gitter Mongo data, https://github.com/vector-im/sre-internal/issues/1929
- [x] Shutdown AWS Gitter infra
- [x] Cancel and stop paying for associated services, https://github.com/vector-im/sre-internal/issues/1927
- [x] Archive projects, https://gitlab.com/gitterHQ
I think it's a bit misleading to mark the Maths feature as done. For web it works, but I need help finishing https://github.com/vector-im/element-android/pull/2133, and as far as I'm aware nobody has started implementing it on iOS. My PR has stalled for over a year now, and I'm quite sure that it doesn't need much developer time to merge.
It's happening!
"So, after over 2 years, we’re pressing the button at last: we’re migrating all the existing content in the original centralised Gitter platform over into Gitter’s Matrix server, and we’re planning to replace the old Gitter app with a Gitter-customised version of Element during the week of Feb. 6th 2023."
https://blog.gitter.im/2023/01/16/gitter-is-going-fully-native-matrix-in-feb-2023/
Setup redirects to rewrite the old Gitter URL to Matrix room alias, https://github.com/vector-im/sre-internal/issues/1755
That URL is 404 for the public or at least I'm not authorized to read. Can the comment be updated to refer to the issue/PR addressing redirect or some information about its status?
@csarven The links are up-to-date but those are internal repositories that you won't have access to.
The sunset period is FAR too short. Please consider extending it.
So now I have the Element app on Mac, ... I see one room is in bridged from Gitter, but I don't see any other Gitter rooms. How to I open an arbitrary Gitter room in Element? How from Element can I see what Gitter rooms exist?
Any recommendations for (command line) matrix api help?
@timbl You need to search the public room directory and select gitter.im as the target for the search.
BTW, all public rooms are bridged.
Searching Public Rooms for 'gitter' does not seem to give me gitter rooms .. and searching for "solidos" doesn't give me our solidos room
sorry that was 'gitter' not 'gitter.im'
You need to select "gitter.im" from the drop-down below the search box. In your screenshot it says "Matrix rooms (matrix.org)" in mine the drop down is opened.
@leonardehrenfried thanks for the info. Trying this. It just says "joining". Is it too early?

Don't really know. I was able to join the room with my matrix user successful. Maybe retry?
Retrying worked, thank you!
@leonardehrenfried It looks as though the gitter rooms like solid/solidos may all have been bridged to things like https://matrix.to/#/#solid_solidos:gitter.im -- is that right?
Yes that's to be expected. Seems that room addresses can't contain slashes.
The room address is #solid_solidos:gitter.im.
Are you aware that starting tomorrow the gitter backend will be converted to use the matrix protocol only?
Are you aware that starting tomorrow the gitter backend will be converted to use the matrix protocol only?
The migration date has moved to 2023-02-13 (next Monday). On this day, you will get access to sign-in to the gitter.im homeserver and will have access to the public and private rooms that you were previously using on Gitter directly (membership and admin permissions).
Public rooms are already available to join if that's all you need (this has been a thing for a couple years now)
First want to say thank you for all the hard work you are doing! Am really looking forward to using Matrix more generally (especially for things that are only available through Gitter atm like private rooms) 😄
The migration date has moved to 2023-02-13 (next Monday).
IIRC this was originally going to happen today. Curious why this was moved back a week (if you are able to share). Recognize people working on this are likely very busy. So don't want to distract. Just having a little more context would be helpful (maybe one sentence would be sufficient). Sorry again for the intrusion.
IIRC this was originally going to happen today. Curious why this was moved back a week (if you are able to share). Recognize people working on this are likely very busy. So don't want to distract. Just having a little more context would be helpful (maybe one sentence would be sufficient). Sorry again for the intrusion.
@jakirkham Mostly just prep work that collided with FOSDEM which happened this past weekend.
Just to let you know (I reckon what I'm seeing is related to this issue here): I take it you're just running https://gitlab.com/gitterHQ/webapp/-/issues/2857 ? This doesn't seem to scale all that well - I have a room with over 9000 gitter users (https://gitter.im/ethereum/solidity) that's now been unusable for over an hour due to the matrix side apparently not being able to handle the amount of users being joined to the room at once all that well (If I read the notification element gives me correctly, after an hour it has synced only half of the users). Not sure if me viewing the room via federation makes this worse and whether this will settle eventually - if it keeps taking several hours to properly open the room from now on, that'd be a problem :-).
@ekpyron You're probably running into https://github.com/vector-im/element-meta/issues/1339. Please give that some 👍 reaction love
Although it's possible you're talking about a different performance problem while all of those members were joining the room.
Congratulations on the merge! 🥳
Had a question about one aspect. AIUI there will still be two identities: one on Matrix and one on Gitter for each user (at least until PR https://github.com/matrix-org/matrix-spec-proposals/pull/2787 is complete). Is that right or am I misunderstanding something?
Had a question about one aspect. AIUI there will still be two identities: one on Matrix and one on Gitter for each user (at least until PR https://github.com/matrix-org/matrix-spec-proposals/pull/2787 is complete). Is that right or am I misunderstanding something?
@jakirkham Your understanding seems in the realm of correct (don't want to assume too much though).
@jakirkham-560313510fc9f982beb1a331:gitter.im exists on Matrix on the gitter.im homeserver. That will exist forever.
Currently, it's not possible to rename or merge that account with your other Matrix account (I assume you have some other Matrix account on matrix.org).
https://github.com/matrix-org/matrix-spec-proposals/pull/2787 is one possibility that could help this scenario though 👍
Thanks Eric! 🙏
Yeah that's right. Have @jakirkham-560313510fc9f982beb1a331:gitter.im and @jakirkham:matrix.org as well
Gotcha ok. Are there other proposals to be aware of as well?
Are there other proposals to be aware of as well?
@jakirkham I think that will hold the most references (anything linked from that).
A half-measure for example could be to mark an account as tombstoned in favor of another account. This way when someone tries to DM or mention you, their client would instead point them to them to the account you prefer. I am not aware of a MSC for this (feel free to create one)
Thanks for the pointers, Eric! 🙏
Another question: Am noticing that some Gitter DM's keep the history when ported over to Matrix and others don't (starting new blank DM's). Is there something I need to do on my end to make sure the history is pulled over from Gitter into the new Matrix DM's?
This section in the blog post might get you up to speed, https://blog.gitter.im/2023/02/13/gitter-has-fully-migrated-to-matrix/#where-is-my-message-history
If that doesn't answer it, come chat on https://matrix.to/#/#gitter_gitter:gitter.im. This issue isn't meant for ongoing support.
Ah sorry will do to that. Thanks for your help! 🙏