sorry about the poor edit
Maybe something along these lines to make the front page a bit easier to understand? for new comers and also faster to log in for older users?
The official lemmy community for Voyager, an open source, mobile-first client for lemmy.
💙
sorry about the poor edit
Maybe something along these lines to make the front page a bit easier to understand? for new comers and also faster to log in for older users?
I've told them that "in the first screen there is a button that is very difficult to notice, allowing you to use a pre-existing Lemmy username. Find that semi-hidden button, click it, and you can login."
This is the first I’ve heard of any problems with this screen, so please encourage them to reach out directly, or post in this community.
I asked for a person without a Lemmy account to install Voyager and make some screenshots. So, here's what my experience was like, and apparently that of others as well. I hope it helps understand in which way the average user is an idiot :) Here goes:
First, I launch the program. This is the screen I get:
So, I've already got an account, so I don't need to join Lemmy. Therefore, I choose the other option, "Pick another server", in order to tell which server my user account is on, and log in to that server.
Then I'm in this screen:
I choose Sopuli and all I get is a form for creating a new username. But why would I want to create a new one? I tried long-pressing the sopuli.xyz text, and got nothing.
Obviously, in the first screen there is the "Log in" button, but because there was "Join" and "The other option", I had assumed the "other option" must include the login. The text can be interpreted that way as well.
And, at the point when I was already at the list of Lemmy servers, the "Log in" option was nowhere to see, and I didn't come up with the idea of going back to the first screen, because I assumed I had already seen both of the buttons there, and I was sure I had pressed the button that was not "Join lemm.ee".
Then I gave up. Some days later I accidentally launched the program again when I was supposed to do something completely different on my phone. Oops. But, the good thing was, I got to that first screen again. And I double-checked that I'm indeed pressing the "Pick another server" button in order to log in with my pre-existing username, and then I noticed the Log In text that is not a button. And pressed it and found out that yes, Voyager does actually support using pre-existing usernames! And nowadays I'm using Lemmy.
Now I've heard of a few people who have installed Lemmy and all of them have first given up, and then tried again after I've told them to "look for the hidden Log In button in the first screen".
"Log in" is what most people will want to do, so people will assume that it will be one of the most prominent buttons. There can be reasons not to make it more prominent than it is; in that case the next screen, with the list of servers, could have a button for "Actually, what I want to do is log in with a username I already have!"
Hey, thanks for the feedback!
So for the select an instance page, I tried to make it so you could login so you can't get "stuck" here: if you press the ellipse button in the header, there is an option to login. Maybe I could add an ellipse button to each instance, I'm not sure. That might be too much noise.
For the landing page, maybe something like this? Please note, I want to keep the "join" prominent so that new users, without an existing lemmy account, can easily sign up.
(pretend "create an account" is in grey as a label. I made it red to show as a change)
[ Sorry for the wall of text. Can move it to GH Issues, if easier. ]
I sorta agree with the OP's feedback. Not sure if this is the way Apollo did it or is custom to Voyager. Either way, it could use some streamlining to help users.
From personal experience... was recently unable to login to an instance. Already had an account on a different server. Went to log out of the existing (malfunctioning) account to troubleshoot the problem, then log back in.
Could not figure it out.
Ended up deleting the account then re-adding it in. Was nerve-wracking since the Delete button wasn't clear if it meant 'forgetting' account on Voyager, or 'deleting' it entirely on server (see below). Went ahead. Even that took multiple clicks: Profile > Accounts > Edit > Delete.
Went through the same scenario posted by OP to log back in. Ended up mistakenly going to 'Other,' which tried to get me to create an account. Nooo. Backtrack. Find the right link, go in, then login again. Phew!
I can see how it could be confusing for people new to the app.
So instead of just whining, here's a suggested list of user path ways. Offered in the spirit of trying to be helpful. Please feel free to ignore. Not a React person (more of a Vue fan) otherwise I'd add these myself and do a PR.
A lot of this functionality already exists. It's just a matter of making it easier for a user to access it with as few taps as possible:
[Side note: be nice if there was a way to indent/dedent lists in the comment editor 😬]
Select one, go to individual server register page. When done, go to All page for current account.
Feature creep: allow user to add a little note reminding themself what the server is for. For example server A is for business, server B is for hobby, etc. Show description whenever showing accounts. Allow editing description somewhere sensible.
Extra, extra feature creep: allow user to select color and icon for account, then make it super easy to switch accounts. Under reddit, lots of people had aliases and apps made it easy to toggle (even on a per-post or per-comment basis).
Be nice if there was an icon showing account is logged in vs not. This way, you could easily toggle back and forth between multiple logged in accounts.
Suggest adding Logout as a single, Red item under Settings. Could also have in Profile tab, in an obvious place (another item under list of actions?), again, in red. Confirm, done.
To support fast account switching, may want to make logout change state of account, and Forget/Delete to edit the list.
This should make clear that it logs out and removes from list of accounts, but does NOT delete on server.
Optional Account-related extras:
Migrate
Reset:
Like I said, happy to move this elsewhere or take discussion elsewhere if not clear.
FWIW, Voyager is the main reason I'm sticking around Lemmy. Discovering it was the happiest thing to come out of leaving reddit.
I would say that having three buttons of similar size would do no harm to ease of starting for those with no preexisting account.
So:
[ Join Lemm.ee ]
[ Join another instance ]
[ Log in to your instance ]
The login button could be on a different colour, but its shape and size should be the same as of the two other options, and, in my opinion, it should be grouped together with them.
(And indeed! Voyager is an awesome app and I'm complaining here only because I've seen you strive for excellent quality. Thank you very much for this awesome app! ❤️)
I wonder if "Log in" and "Learn more" being of equal size might be confusing?
It's difficult to say because now that I know the button is there, it feels like only an idiot would miss it. Would need to make human experiments with people who have no experience on Lemmy. Like, make them try to log on with my username on their own phone.
Small suggestion: maybe "sign up" is more clear than "Join"?
"sign up lemm.ee" doesn't english too well 😛
"Register"?
Thank you, that's very valuable information!
People shouldn’t even have to choose their instance. People should type their full username.
Fx: [email protected] should be enough and then their password.
I’m not sure how that would work. When you sign in you can use your username or email. So if you type [email protected] there is no way to know if you’re trying to login to the instance at domain.com or login with your email ending in domain.com, to some other instance.
Edit: and it can’t just assume and try domain.com first, because then if it’s not what the user intended then you just sent your login credentials accidentally to a random domain 🙃
You would only be able to login this way with your username. If you by mistake use your email, then it simply doesn’t resolve to a Lemmy server and the login fails.
[email protected] would simply fail, because that Lemmy instance does not exist.
But what if it does exist? But your have an email server on the same domain? Or what if that domain is being malicious and masquerading as a Lemmy instance to steal your credentials?
It doesn’t matter if there’s an email server or not.
I am not logging in with the credentials “[email protected]”. I am telling Voyager that I want to log into “Lemmy.wtf” with my user “Meldrik”. Before I type a password, the app will check if “Lemmy.wtf” exists and maybe even check if there is in fact a user named “Meldrik”. If all are true, then it will ask for password.
Something like that. I don’t know how Voyager works 😁
that’s still making assumptions about where you want to login to. The fact is that you can login, today, to Lemmy.world with “username” of “[email protected]” assuming Lemmy.wtf has an email server setup. And it’s not a safe assumption because users DO have email addresses saved in their passwords manager as a username for whatever random instance, and there should be a 0% chance of sending user credentials to the wrong domain.
I can’t just trust that domain to say they’re a Lemmy instance, and there is a user with that username on the domain. That’s trivial to exploit.
It’s true you can login with your email, instead of your username. But what I am saying is, in Voyager, it should only ask for your username+instance ([email protected]).
If I by mistake type my email: [email protected] it will obviously fail, right? Because there’s no Lemmy server at that domain.
You already validate Lemmy servers in Voyager, right? So if “[email protected]” doesn’t match a Lemmy server, an error would show.
I validate lemmy servers by asking the server if it's a lemmy server. If the protonmail.com is malicious and says, "sure I'm a lemmy server" then credentials would be sent to it, which is not good
If I typed the wrong domain here and it turned out it’s a malicious server pretending to be a Lemmy server, then what happens?
Also, wouldn’t it be highly unlikely that the users email domain is malicious?
You explicitly select the instance, so there is no question of what domain Voyager will contact. Also, on the next screen where you enter credentials, you see the domain and its icon, and you can click to open in the browser to further confirm that you are connecting to the correct instance (if you accidentally select the wrong one)
I can also enter the instance name myself on that screen and then it checks if it’s a Lemmy server, right?
So if there was a “login with username”, you would type your username@instance, then Voyager would check the domain and show the next page you are talking about, with a pre-filled username.
No, that wouldn't work for aforementioned reasons.
Edit: Also even if you did ignore the security concerns, this approach wouldn't work at all with OAuth flow that is planned. https://github.com/LemmyNet/lemmy/issues/1368
So I can’t type in a domain manually?
Damn, that's simple and intuitive. This should be universal.
I'd like a "write here or choose from the list below" approach :)
I love this approach
It recycles people’s knowledge about emails in a nice way. It could even have some sort of autocomplete as you start typing the instance name to prevent mistyping.
Exactly.
Some instance names can be a bit tricky to type, like sh.itjust.works, so an autocomplete would be a huge help.
I confirm, it is massively unintuitive. Layout should be updated to make it easier to just login to your instance.
Can you provide a quick mockup of how you’d update the layout?
Hey,
Just wanted to say thank you for your work. Some comments here are a bit harsh, and forget how far behind we would be without Voyager