elk-zone / elk

A nimble Mastodon web client
https://elk.zone
MIT License
5.44k stars 559 forks source link

feat: user lists #372

Closed ayoayco closed 1 year ago

ayoayco commented 1 year ago

Implement creating / showing lists on Elk.

The Mastodon web client has this feature:

Screenshot 2022-12-08 at 9 56 59 AM

ayoayco commented 1 year ago

@sarah11918, I wrote this one as our initial issue for the Lists feature :) you can add info or ideas as well! :)

sarah11918 commented 1 year ago

Hi @ayoayco - is there any info that would be helpful re: how I use lists? What actions I would need to perform? Anything specifically I could answer? 😄

ayoayco commented 1 year ago

I guess we could start with anything you find that could be better in the way Mastodon does this feature, otherwise Mastodon web will be the basis for how Elk implements lists. For example if you have used a client that does it in a different way and you prefer it, then the dev can inspect how we can bring the best implementation to Elk :) @sarah11918

vwchu commented 1 year ago

Perhaps the blank space to the right of the timeline and under the search box could be used to display the user's pinned lists or followed hashtags. Maybe 6-8 of them could be pinned by the user for quick access. On mobile, those links could become tabs under the header alongside a Home tab in a similar way as displayed in Twitter's mobile app. Other ideas:

prohr commented 1 year ago

Mastodon's stock functionality for lists requires that you first be following the account, so posts appear on both the list + your main TL. This makes sense from an AP perspective (so that they're delivered) + from a privacy perspective (so followees can be notified who's seeing their content). However, it just adds to the firehose problem of keeping up with your main TL.

Twitter lets you cut down on the firehose by just adding noisy accounts to a topic-specific list + rumor has it that Mastodon has a workaround (or bug) that allows you to achieve a similar effect by unfollowing an account after adding them to a list. Both seem like awkward power-user approaches.

However a friendlier variant would be to split off an entire subset of your main TL to a separate tab using lists. This is similar to what Darius Kazemi is calling "exclusive lists" on his Glitch fork, although I've recommended that "filtered list" might be more user-friendly for folks who've ever used email.

For details on the intended UX, see the subthread here:

https://hachyderm.io/@pevohr/109458396082627442

sarah11918 commented 1 year ago

OOh, that's a really interesting idea, and one I'd love @prohr.

For context, the absolute best implementation I've seen of this (filtering, excluding from a timeline -- not 'muting' but rather separating out) is with a MacOS Twitter client YoruFukurou. When I moved away from MacOS, I really missed the ability to have lists plus a filtered timeline. https://sites.google.com/site/yorufukurou/home-en

I wrote about how I set up elaborate filtering rules on my blog, but the kicker is this:

There are a variety of tabs one can create, but what makes Yoru Fukurou unique as a Twitter client is its ability to create a “Filter Tab.” A filter tab shows only tweets from your timeline that match particular keywords or phrases, hashtags and/or users. It is like a search tab, but it searches only your timeline, not all of Twitter.

Most importantly for me, Yoru Fukurou allows you the option of removing filtered tweets from your regular timeline. This means that any tweet that matches any of your filtering criteria is hidden away from view as you browse your timeline tab, and instead is only visible within your Filter Tab. This is how I can keep up with my Twitter timeline even when people I follow are tweeting about the Jays game currently underway.

With Mastodon now, I add every person I follow to a list of some kind. I read my timeline only when I think I can keep up, OR I switch to reading lists only (never the timeline) exactly for the reason you stated: it's all people I follow, so every post is duplicated.

So for me, first and foremost, I would need the ability to add someone to a list, because everyone I follow is put on a list.

But yes, lists become far more useful if you can filter posts that show up in lists out of your main timeline. Then, I wouldn't need to have everyone on a list, nor so many silly lists! :sweat_smile:

Stretch goal: don't stop at just "filtering out a post if it's already on a list", but even "filter out a post that matches this filter criteria"... game changer! ;)

prohr commented 1 year ago

To be clear, there are at least 3 orthogonal possibilities here:

  1. per-account setting (this one's on list, but off main TL) = Twitter behavior
  2. per-list switch (entire list off main TL) = proposal above
  3. global switch (all lists off main TL) = possible interpretation of what @sarah11918 said

3 might be easier to explain + implement, but it's an all-or-nothing, feast-or-famine kind of thing. Set it once + forget it.

Whereas 2 allows the more interactive possibility of mixing + matching which lists of accounts should skip your TL. My hunch is that this might allow some interesting workflows, but I don't have concrete examples to point to. Mostly I like the magical feeling that one set of accounts appears or disappears from my TL at the flick of a switch. Whoosh! They're gone. Voila! They're back!

jmarkel commented 1 year ago

I see this issue is "Waiting for user interest" Consider this user INTERESTED

kissu commented 1 year ago

I really like lists (Tweetdeck syndrome I guess). Being able to follow a very specific group of people depending on my mood (Vue, Performance, 3D, Close-friends etc...) is quite a deal breaker for me. Pretty much the only way I ever used Twitter efficiently haha.

So that in Elk would be by far my most requested feature. 🤩

alvarosabu commented 1 year ago

I agree, would be a really nice feature!

ZMYaro commented 1 year ago

@vwchu I agree that having lists available as a drop-down in the home tab (at least on mobile) makes the most sense, especially since, as prohr said, anyone you have on a list is necessarily already on your home feed (at time of writing).

+1 to removing Favorites from the sidebar to make space. In addition to your suggestions, it could also be added as a tab on the user's own profile, which is what Tumblr and Twitter do (among others).

I am not sure it is as necessary to add the add/remove from list option to every post menu since sharing options are already there, but I recognize adding it there would be consistent with Twitter. Has consideration been given to adding it to the mouseover profile card instead?

maegul commented 1 year ago

In line with @jmarkel 's comment, I too am interested! I like what I've seen of elk a lot so far, but for me the lists is kind of a must have and I'll probably mostly stay with the default webview for now entirely because of the lack of lists in elk .

Generally though, this feels like a nice opportunity to innovate on the filtering the fire-hose front on the client side, to whatever extent that's feasible. Adding hashtags to lists somehow would be awesome (if possible)! So I'll be keeping an eye on elk for sure!

ayoayco commented 1 year ago

@maegul these are good ideas! We've had some discussions lately on "pinning" public timelines, I guess hashtags could be pinned too.

Are you able to create separate issues so we keep the scope of this one to user lists?

kerim commented 1 year ago

I would like to replace "home" with a list of my choice, as well as have a couple of other pinned lists that I check regularly. I would also like to be able to add people to lists when I follow them.

kissu commented 1 year ago

Even Twitter has that one nowadays (on desktop), more friendly than ever. 😄

CleanShot 2023-01-18 at 18 53 06@2x
gerwitz commented 1 year ago

+1 for @kerim's scenario. I follow promiscuously but then use a "regulars" list for my daily timeline browse.

LauraLangdon commented 1 year ago

It would be super helpful to be able to add a user to a list directly from that user’s profile!

keelancook commented 1 year ago

I'll chime in here as well. Love the look of Elk. Can't use it until lists are in place. They are 100% how I organize all of my followers. Mastodon is too noisy otherwise.

My ideal use case would be an app that allows me to completely edit the timeline options on the side. Allow me to choose whether or not I show "home" or "bookmarks" or "favorites" and give me the option to replace these with my own lists, or followed hashtags. That would speed up my use of Mastodon tenfold.

On mobile, as much as I hate to say it, Twitter's new implementation is ideal by having your lists at the top of the feed for easy selection. There is one exception. A number of Mastodon apps allow you to swipe left or right in the timeline to switch lists by gesture navigation. If an app had the looks of Elk and that kind of functionality for navigating lists, it would be my immediate choice.

Also, as cluttered as it can get, I do often like using the multi-column advanced interface that allows showing multiple lists as columns on a wide screen.

And finally, the option to mute a user from the home timeline once they are in a list is part of the Fedilabs android app. It's brilliant. You can just choose to do so when you follow someone and add them to a list.

You all are doing great work. Elk is beautiful.

boehs commented 1 year ago

image

I'm working on this!

ATM I just want this to "work", so probably no management, viewing users, ETC.

would self-assign, but I can't

isocny commented 1 year ago

Also important is making it easy to 1) add people to lists 2) see who is on a list 3) see what lists someone is on.

ayoayco commented 1 year ago

Thanks for picking this up @boehs! 🎉

Just see what you can do to move this forward. We want feature parity with Mastodon web app first, then we can maybe organize the very nice suggestions from comments here into separate issues.

boehs commented 1 year ago

Also important is making it easy to 1) add people to lists 2) see who is on a list 3) see what lists someone is on.

Agreed. I plan to add support for all of that in due time. I personally like incremental merges, and the first pull request that adds basic viewing is now ready for review (I mentioned one core member, but I don't have a specific preference:))

We want feature parity with Mastodon web app first, then we can maybe organize the very nice suggestions from comments here into separate issues.

All of that sounds good to me!

afk-mario commented 1 year ago

Also important is making it easy to 1) add people to lists 2) see who is on a list 3) see what lists someone is on.

Maybe will help someone, I made a web app to manage the accounts you follow in lists

https://github.com/afk-mario/federike/

boehs commented 1 year ago

Also important is making it easy to 1) add people to lists 2) see who is on a list 3) see what lists someone is on.

Maybe will help someone, I made a web app to manage the accounts you follow in lists

afk-mario/federike

this is funky! we'll probably have the listed features by the end of tomorrow, but I absolutely love the design on this and it's such a cool niche that we don't handle.

boehs commented 1 year ago

Hi everyone, quick update. You should be able to:

in practice, there is a bug that didn't appear during the PR that is seriously degrading that functionality. I'm looking into it, but likely won't have much time this week.

This is how it's supposed to work: https://deploy-preview-1479--elk-zone.netlify.app/universeodon.com/list/2768

Note that on https://main.elk.zone/lists, it's a little borked. If someone does have a bit of free time and can investigate, that would be great, but I will get back around to it soon ❤️

ayoayco commented 1 year ago

Thanks @boehs! I don’t know if this is tracked, but do you see on mobile there still no three dots now on a profile?

953E7BB2-9755-42CB-A718-FF092250DBA5

boehs commented 1 year ago

Thanks @boehs! I don’t know if this is tracked, but do you see on mobile there still no three dots now on a profile?

953E7BB2-9755-42CB-A718-FF092250DBA5

Oop, that's my fault.

boehs commented 1 year ago

Hi All, I am so excited to announce elk now supports lists with parity to mastodon. We will continue to work on enhancing lists even further, but will do so in separate issues. If all goes well, lists will be available on elk tomorrow, and for now you can test them on https://main.elk.zone

Special thanks for @userquin's help in making the last little bit really much better then what I was planning.

Consider backing elk on open collective or github sponsors

Much love, Evan ❤️

beejunk commented 1 year ago

Everything I hoped for and more, @boehs ! Thank you so much for your work, Elk will definitely be my client of choice now.

kerim commented 1 year ago

Fantastic. I've now switched to Elk as my main web client. I do hope to see the ability to pin individual lists at some point, but this is already great!