element-hq / element-hq/element-web
Simplify onboarding for new users
- Dominant language
- TypeScript
- Stars
- 13.5k
- Forks
- 2.8k
- PR merge metrics
- PR metrics pending
Description
### Steps to reproduce
1. Ask users to use the newly-installed Element chat instead of whatever chat software was previously used.
2. Between the MAS confirmation dialogs and Element Web's encryption key backup and new features walkthrough, the first login onboarding process takes 17 clicks (plus the actual authentication e.g. with the configured OpenID Connect provider) before the user can send their first message in an auto-join room (the shortest path to success, sending a direct message understandably requiring more UI interaction to add a contact). After the first login, subsequent logins still take 7 clicks (plus the actual authentication) to get from a logged out state to a position where one can type a message.
### First login
### Second and later logins
### Outcome
#### What did you expect?
First login:
* Skip step 0, if not logged in get redirected to OpenID login page automatically. I expected this to be solved by setting `"sso_redirect_options": { "immediate": true }` in `user-config.json`, but that is not the case.
* Skip steps 1 and 2, their duplication is tracked here https://github.com/element-hq/matrix-authentication-service/issues/5377, that ticket also asks for a way to skip the steps altogether.
* Replace steps 3-7 with a single modal dialog along the lines of "Your recovery key protects your messages. You need the key to access your messages. If you loose this key, it cannot be recovered and you will be locked out of your messages. Keep this key private. Click here to [Download recovery key]."
* Step 8 was tracked by https://github.com/element-hq/element-web/issues/27684 but that ticket has been closed
* Step 9 could be skipped and directly show step 10 (the browser's prompt to enable notifications). After all, the browser already asks for permission, no need to ask twice.
* Skip steps 11-15 if this is the first time the user logged in: because the user has never logged in, they do not need to be told what's changed in the user interface since last time they logged in.
* Have an option to skip step 16 and auto-open a specific auto-join room on first login.
Subsequent logins:
* Skip step 0, if not logged in get redirected to OpenID login page automatically. I expected this to be solved by setting `"sso_redirect_options": { "immediate": true }` in `user-config.json`, but that is not the case.
* Skip steps 1 and 2, their duplication is tracked here https://github.com/element-hq/matrix-authentication-service/issues/5377, that ticket also asks for a way to skip the steps altogether.
* Merge steps 3 and 4: show the input field with buttons "Continue" and "I lost the key" below.
* Skip step 5: only show a dialog if there's a problem, simplify the happy-path.
* Skip step 6: The user already clicked "ignore" after their first login, they shouldn't have to click "ignore" every time they log in. Perseverence is not the key to compliance.
#### What happened instead?
There is some concern that such a high number of steps will confuse and alienate new users who aren't tech-savvy, especially with steps 4 and 7 where it's not quite obvious where one is supposed to click (step 7 is especially obscure, as the cross to close the preferences window is one of the smallest on-screen UI elements and is not highlighted in any way, it may appear to the user that they are prompted to perform extra configuration steps, without a hint about which one requires their attention).
### Operating system
Debian 12
### Browser information
Firefox 140.5.0 esr
### URL for webapp
Private server
### Application version
Element : 1.12.3, crypto : Rust SDK 0.14.0 (c3b7918), Vodozemac 0.9.0
### Homeserver
Synapse (ESS Helm)
### Will you send logs?
No
Contributor guide
Research direction
Start by reproducing the first-login and subsequent-login onboarding flows in Element Web with the reported SSO, recovery-key, notification, and walkthrough steps. The issue names no files or tests, so trace each dialog and the sso_redirect_options behavior from the relevant onboarding entry points. Done means reducing redundant prompts and clicks while preserving recovery-key warnings, authentication, and a clear path to sending a message.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- authentication, frontend, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100