this post was submitted on 19 Mar 2025
44 points (94.0% liked)

Voyager

6197 readers
82 users here now

The official lemmy community for Voyager, an open source, mobile-first client for lemmy.

Download on App Store

Download on Play Store

Use as a Web App

Download on F-Droid

Rules

  1. Be nice.
  2. lemmy.world instance policy

Sponsor development! 👇

Number of sponsors badge

💙

founded 2 years ago
MODERATORS
 

I keep hearing of people who have used Lemmy for a few days or a few weeks and want to start using a mobile version – often Voyager.

They open Voyager for the first time, and get a screen with a button for logging in. They get a choice for which Lemmy instance to join, but no place for entering their existing username or password.

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."

It is of course a working workaround to pre-emptively tell people that the button exists, is just very well hidden, and needs to be clicked by most people who download Voyager. But still, it would be cool if the screen for new users could be altered so that the ability to log in with a pre-existing username was equally visible as the choice to create a new account!

top 32 comments
sorted by: hot top controversial new old
[–] [email protected] 7 points 22 hours ago

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?

[–] [email protected] 6 points 1 day ago* (last edited 1 day ago) (1 children)

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.

[–] [email protected] 4 points 23 hours ago (2 children)

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!"

[–] [email protected] 3 points 22 hours ago (4 children)

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)

[–] [email protected] 2 points 8 hours ago

[ 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 😬]

  1. Register:
  • Offer pre-selected server. Buttons with:
    • Refresh or dice icon: loads a different random server.
    • Filter icon (optional): shows all candidate servers (filter based on user choices: location (country of origin), keywords/tags, number of members, etc)
    • List button: Ordered list of all servers

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).

  1. Login:
  • Popup list of existing accounts currently under Profile > Accounts list.
    • Enter password.
  • Or... Section with:
    • Pick from filtered list of servers (same as above)
    • Pick from ordered list of all servers (same as above)
    • Enter server name manually
  • Enter username / password or go to server login page.

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.

  1. Logout:
  • Confirm, done.
  • If you have other accounts, go to account picker page.
  • Logout could also leave item in list of accounts but show that it's not 'active.'
  • If no accounts, go back to Register / Login page (above)

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.

  1. Forget:
  • Show list of accounts, with a red trash icon next to each one.
  • Confirm. Remove from list of accounts.
  • Forgetting also logs out, so same path as above.

This should make clear that it logs out and removes from list of accounts, but does NOT delete on server.

  1. Delete (locally and on server):
  • Not sure if Lemmy API allows this.
  • If so, then list of accounts with red X icon.
  • Confirm, maybe double-confirm, delete. Removes from account list.
  • Or take to server delete page.
  • If confirmed, delete local profile as well.

Optional Account-related extras:

  1. Migrate

    • Create new account, then migrate from logged-in other.
      • Overwrite existing account settings (confirm, since destructive)
      • Merge with existing account (confirm, since not easily reversible)
  2. Reset:

  • Factory resetting to a fresh new logged in account state.
  • Could ask what to reset/purge: Comments, Saves, Posts, or All.
  • Confirm, maybe double, since not reversible.
  1. Export / Import account settings:
  • Downloadable bundle.
  • For migrating to a fresh new device, in case OS account migration doesn't work.

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.

[–] [email protected] 2 points 11 hours ago* (last edited 11 hours ago)

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! ❤️)

[–] [email protected] 2 points 11 hours ago

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.

[–] [email protected] 1 points 21 hours ago (1 children)

Small suggestion: maybe "sign up" is more clear than "Join"?

[–] [email protected] 1 points 21 hours ago (1 children)

"sign up lemm.ee" doesn't english too well 😛

[–] [email protected] 1 points 21 hours ago

"Register"?

[–] [email protected] 2 points 23 hours ago

Thank you, that's very valuable information!

[–] [email protected] 29 points 2 days ago (3 children)

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.

[–] [email protected] 3 points 1 day ago* (last edited 1 day ago) (1 children)

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 🙃

[–] [email protected] 1 points 1 day ago (1 children)

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.

[–] [email protected] 4 points 1 day ago (1 children)

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?

[–] [email protected] 1 points 1 day ago (1 children)

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 😁

[–] [email protected] 7 points 1 day ago (1 children)

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.

[–] [email protected] 1 points 1 day ago (1 children)

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.

[–] [email protected] 3 points 1 day ago (1 children)

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

[–] [email protected] 1 points 1 day ago* (last edited 1 day ago) (1 children)

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?

[–] [email protected] 4 points 1 day ago (1 children)

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)

[–] [email protected] 1 points 1 day ago (1 children)

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.

[–] [email protected] 4 points 1 day ago* (last edited 1 day ago) (1 children)

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

[–] [email protected] 1 points 1 day ago

So I can’t type in a domain manually?

[–] [email protected] 4 points 1 day ago (1 children)

Damn, that's simple and intuitive. This should be universal.

[–] [email protected] 1 points 1 day ago

I'd like a "write here or choose from the list below" approach :)

[–] [email protected] 4 points 2 days ago (1 children)
[–] [email protected] 7 points 1 day ago* (last edited 1 day ago) (1 children)

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.

[–] [email protected] 2 points 1 day ago

Exactly.

Some instance names can be a bit tricky to type, like sh.itjust.works, so an autocomplete would be a huge help.

[–] [email protected] 13 points 2 days ago (1 children)

I confirm, it is massively unintuitive. Layout should be updated to make it easier to just login to your instance.

[–] [email protected] 4 points 1 day ago (1 children)

Can you provide a quick mockup of how you’d update the layout?

[–] [email protected] 5 points 23 hours ago

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