Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make it easier to get people chatting (guest access) #340

Open
madduck opened this issue Jan 26, 2017 · 14 comments
Open

Make it easier to get people chatting (guest access) #340

madduck opened this issue Jan 26, 2017 · 14 comments

Comments

@madduck
Copy link

madduck commented Jan 26, 2017

(This issue isn't really just about riot-web. It's really about the whole ecosystem, but I need a place to write it down and this will do…)

I've gotten several dozens of people to join Matrix in the last couple of weeks, and found the process unnecessarily complex. Often, I'd have to wait for the person to install the app so that I could then let them know how to connect with me, or join the conference chat room. Per se, that wasn't so bad as I used to time to explain some concepts around Matrix, but quite a few times we simply ran out of time, which hindered adoption. Furthermore, I found a lot of this to be repetitive and error-prone, thus calling for automation.

In an ideal world, either of the two should be possible:

  • Hand someone a business card with a QR-code or the like. Scanning this QR-code should then leave the correspondent in a direct chat with me, whilst my e2e-encryption key is already verified.
  • At a conference, the organisers might want to provide a QR-code that gets people joined into the conference chat room.

Obviously, this can go to any level of detail, but maybe the following could be a viable way forward?

  1. The QR-code links to a unique page e.g. on matrix.to. On that page, instructions on the available clients and their download links etc. can be provided;
  2. Maybe it could feature a simple means to sign up for a new account, i.e. I enter my desired name on matrix.org (or maybe other public servers could be listed too as options) and if it's available, a data file gets generated that can be fed to the client, who would then automate the signup process and essentially only prompt for a password when it's time.
  3. Finally, a data file gets generated that if fed to a client causes the client to auto-join a direct chat with me, or a conference room, or any combination of these. This data file could also include information necessary to verify e2e-keys, as applicable.

Probably the two data files in (2.) and (3.) should be combined into one and then fed into the app at once, so as to simplify control flow for the user.

With the Riot web client, no data file needs to be downloaded. A link to the webapp could encode all this information, or at least the URI where to download all these data. The mobile clients probably need to register themselves as a MIME handler for this type of file such that they get invoked to handle the download.

@madduck
Copy link
Author

madduck commented Jan 27, 2017

It should go without saying that the pages on matrix.to don't need to be created, but anyone can just create an appropriate URL…

@tessgadwa
Copy link

Couldn't agree more. I would also add that the first 10 minutes of a user's experience determines whether they will choose to continue using an app. And the first 30 seconds determines whether they will stay 10 minutes.

@madduck
Copy link
Author

madduck commented Jan 27, 2017

Well put, @tessgadwa

@ara4n
Copy link
Member

ara4n commented Feb 18, 2017

So we have some of this already: single-click login via riot-web: https://riot.im/#/room/#riot:matrix.org etc.

QR codes can be done to link to pages like that easily (or to matrix.to, were matrix.to less ugly)

@madduck it feels like you're really asking for autojoin or guest access on the mobile apps too, somehow? I wonder if this could be done by using a mobile website URL to jumpstart the user, which redirects them to installing the app, and then uses a custom app URL schema to jump to the right room?

@ara4n ara4n changed the title Make it easier to get people chatting: import data files Make it easier to get people chatting (guest access on mobile?) Feb 18, 2017
@ara4n ara4n added the P1 label Feb 18, 2017
@madduck
Copy link
Author

madduck commented Feb 18, 2017

@ara4n Guest access on mobile would be a good step, but I don't see that as the end of the road.

Sure, get people chatting right away, but then it should be trivially possible to switch to an account without restarting the session. That way, people can give it quick try and only need to invest time into account creation if they want to stick around. The app could remind them of that if the user uses it more often than just once.

I personally still like the idea of the "data files" that can provide additional information, such as e2e fingerprints etc.. But that's possibly a separate issue, I mainly wanted to keep it in mind when designing a solution as another possible use-case of what might then become a more general-purpose approach.

@cuhkrain
Copy link

This function (QR code of the room link) is highly desired....

@madduck
Copy link
Author

madduck commented Oct 29, 2017

Another idea: couldn't Riot in its various forms be registered as URI-handler for matrix:// with the appropriate content handlers, such that one could redirect conference guests or family members to custom URIs such as matrix://matrix.madduck.net/, which would open up Riot and preseed the custom homeserver URL for login and registration?

@t3chguy
Copy link
Member

t3chguy commented Oct 29, 2017

@madduck that is what matrix.to is for, ios and android apps catch the links

@madduck
Copy link
Author

madduck commented Oct 29, 2017

@t3chguy Even better, then it should already be possible to craft a URL using matrix.to and we only need to teach the various Riots to interpret parameters like hs_url?

@ara4n
Copy link
Member

ara4n commented Oct 29, 2017

The best solution on mobile would probably be deferred deep linking: passing through info when installing the app to let the app select the right homeserver. Unfortunately on iOS this is currently impossible since iOS 11, unless you use a centralised service like branch.io which fingerprints the device to try to match up the website with the webapp (as it were), which is obviously rather undesirable. On Android it can be done by INSTALL_REFERRER in theory.

The problem of matrix:// URLs is that by the time you've installed the app and are clicking on a URL you've probably already selected a HS?

@madduck
Copy link
Author

madduck commented Oct 29, 2017

The problem of matrix:// URLs is that by the time you've installed the app and are clicking on a URL you've probably already selected a HS?

If people already installed the app and got their account anywhere, then that's the best, of course (moving to other identities should become a possibility…). I guess my use-case is more about actively converting users and in many cases, this will happen in circles and network effects should be considered. Sharing a URL that gets us chatting on the same homeserver with minimal effort would really help I think.

@vranki
Copy link

vranki commented Jan 14, 2019

I'd like to add that it would be useful to join a user to multiple channels and also add a matrix user(a) as contacts.

@jtagcat
Copy link

jtagcat commented Apr 7, 2019

related to element-hq/element-web#9316

@quantazelle
Copy link

I was thinking something similar, but this is a better execution. For it!

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

No branches or pull requests

10 participants