Having had another bad onboarding experience during a discussion about not using MS Teams (I sent the "Copy room link" from the element web client), I thought about how to make this experience better.
Going a bit through the archives (#15 #197 #16 #74 flaki@7eeadc4 #23 and others), I see that there are already quite some options, but neither of which makes it as easy as "click on the link"...
Proposition
Preparation of the web clients (e.g., element-web):
- add a
default_client_storage configuration option to element-web to point to a "matrix.to" server - by default it's off
a) there can be a per-user configuration option which overrides the global setting either way (on -> off; off -> on; override the URL)
b) for this to work, the inviter and the follower need to have the same default_client_storage
- if the configuration is set, the element-web regularly opens a page from the
default_client_storage server with an URL like:
${default_client_storage}#mymatrix.mydomain.mytld in the background. This is necessary, because the localStorage is private to a domain
- This page from the
default_cliet_storage stores the data after the # in the localStorage of the browser
Sharing a room
- click the three dots on the room and choose "Copy room link - default client" (or make this the default if
default_client_storage is set)
- the link points to the
default_client_storage server with an additional tag, e.g., ?use_default_server
- if the page from
default_client_storage detects a stored client in the localStorage of the browser, it shows a countdown (5 seconds) to redirect to the default client
a) if multiple default clients are stored, it could redirect to the most used after 5 seconds, but display the other ones
Commets
- For mobile clients, matrix.to would need to recognize that it's running on mobile, and propose a rewritten
matrix:// scheme
Problems
- need to open the link in the open tab, else the element web client complains that it's already open in another tab
- will not work with the desktop apps, as the
matrix:// protocol is not implemented yet, from what I gather
- this breaks my first idea of getting the web-client to store data in a privacy-preserving way (using an iFrame to store data in the localStorage): https://developers.google.com/privacy-sandbox/cookies/storage-partitioning
Do you think this would be an acceptable extension to matrix.io and element-web?
Having had another bad onboarding experience during a discussion about not using MS Teams (I sent the "Copy room link" from the element web client), I thought about how to make this experience better.
Going a bit through the archives (#15 #197 #16 #74 flaki@7eeadc4 #23 and others), I see that there are already quite some options, but neither of which makes it as easy as "click on the link"...
Proposition
Preparation of the web clients (e.g., element-web):
default_client_storageconfiguration option to element-web to point to a "matrix.to" server - by default it's offa) there can be a per-user configuration option which overrides the global setting either way (on -> off; off -> on; override the URL)
b) for this to work, the inviter and the follower need to have the same
default_client_storagedefault_client_storageserver with an URL like:${default_client_storage}#mymatrix.mydomain.mytldin the background. This is necessary, because the localStorage is private to a domaindefault_cliet_storagestores the data after the#in the localStorage of the browserSharing a room
default_client_storageis set)default_client_storageserver with an additional tag, e.g.,?use_default_serverdefault_client_storagedetects a stored client in the localStorage of the browser, it shows a countdown (5 seconds) to redirect to the default clienta) if multiple default clients are stored, it could redirect to the most used after 5 seconds, but display the other ones
Commets
matrix://schemeProblems
matrix://protocol is not implemented yet, from what I gatherDo you think this would be an acceptable extension to matrix.io and element-web?