lists are an incredibly powerful twitter feature that is often overlooked or ignored by non-power-users
this said, this is in many ways due to the failings of twitter as a platform, and the ways it does not make the feature easy to use, find, or implement into your personal use of the platform.
as such, i will be outlining how to do this better for mastodon, how to make the feature better tooled and better integrated with mastodon itself.
first, the API needs to support it, and to support posting to lists as a group of receivers. the default posting levels should honestly be scrapped, in my opinion, and better implemented.
first, i would propose that we retool the existing "posting levels" into modifiers. the current system could even still be kept, with an opt-in to the more advanced system i am about to lay out. (to avoid the "cockpit effect" i have heard of several times, for newer users) let me elaborate on how to better re-tool the current system.
MODIFIERS
the better way to implement the system we are currently using, while simultaneously providing for more advanced usage of the posting mechanism (lists, for example) is to rework the system into modifiers and list-targets. obviously, the default list-target would be your followers. after the modifiers, i will elaborate on how to handle non-followers and lists.
-
"post to public timeline"
this modifier is comparable to the unlisted option, and it does not limit people who choose to look at you from seeing them, or boosting them. i would personally argue, if there were not pre-existing opinions on what the 'default' is, through existing code, that this should be an OPPOSITE modifier, namely "post to public timelines" as this would fit better in with the semantics of lists API side.
-
"can not be boosted"
to many users, this is different from private posts, and i suggested they be different way back before they were implemented. this would also not disallow the post from being posted to the public timeline. i can already see the arguments against this, so i shall counterpoint them before they come. "what if an instance doesn't respect this setting" rather than say that this is avoidable, as many people argue it is currently unavoidable, i would suggest a more transparent way for users to understand what happened when such a "failstate" as many would see it, occurs. namely, something along the lines of "oops! x boosted your toot, their instance does not support this tag for posts. try petitioning them to add support, or block them if it is harmful to you for toots to be boosted" some might argue that blocking is a bit extreme, but i personally believe people have every right to block people for whatever reason, and it instantly resolves the issue, and is thus something to be considered and chosen by the user. furthermore, the words block and petition would hotlink to a yes/no are you sure prompt, and a "compose new toot" action, mentioning the owner of the instance in question. (should it be an instance this can easily be done for)
i would also propose one change that might be considered unusual to this feature: the creator of the toot can boost the post
-
"only visible to [list]"
this is the equivalent of the current method of private toots, in addition to "can not be boosted". the change here, is that this is now changed to work with lists as a feature. i am yet unsure if this modifier should automatically include the second modifier, but instinctively i would lean toward yes.
-
"do not federate"
hey it's time for a new one! this is a long-requested feature, and it can be used in tandem with any of the above modifiers, or with no other modifiers to post a local-timeline-only post.
LISTS
now we get to the meat of it. lists are the ability to post to a subset of users. there are two usages of lists, both of which i will get into in detail.
first: to better organize people you are already following, or who are already following you into more manageable subsets of said users.
second: to keep someone out of your home timeline.
now, this gets tricky with the implementation of private and public lists. public lists can be viewed by anyone, private lists are just the user who created it. the difficulty here is one of abuse, namely, not everyone wants to be in a list, and as such there needs to be better ways to opt-out.
i suggest a system with several layers to remedy this. namely, private lists will always be treated the same as following someone, down to the level that if you have added someone you do not follow to a list, they will be added to your following list that is displayed to others. this requires a more flexible understanding of following. following someone would drop down a list of private lists if you have them, and allow you to (instead of adding them to your home timeline) add them to a list.
this makes the home timeline very simple! it is now a list that when you follow someone, is the default place to put someone. you can add/remove them from other lists, or only follow them via another list, and suddenly the following system makes much more sense.
alright, private lists are out of the way.
"wait, what about harassment!" private lists are inherently solved via the existing follow system being extrapolated into this list format. namely, vetting follow requests already exists. private lists are not publically shared, so they are essentially the equivalent of following someone normally. this means, for private lists, they will merely need to use the retooled following mechanics, the retooled vetting of follower requests. already taken care of.
public lists are a different story. since anyone can view them, it would need a separate mechanism, to better enable the user to understand the consequences of allowing yourself to be placed on that list. a public list can be viewed or followed by anyone, and is treated the same way private lists are when it comes to "posting to"
here's how the list mechanic would work, when it comes to making a new post. you can distribute to all your followers by default, and in addition to this, any lists you have created (thus allowing subsets of your own followers) and any public lists you have allowed yourself to be added to, can be selected in addition to or instead of your full list of followers.
it is worth noting that all of these changes require the existing feature of default-posting-levels to be retooled as well, so that modifiers can be chosen for your default posting level.
there's another thing i haven't mentioned, which is arguably it's own feature, and that's the option to follow everyone in a list. this would be an option for anyone who views a public list to add everyone into the list to any of their own lists.
EDIT: public lists should allow users in a public lists to remove themself from the list at any time.
EDIT 2: blocking should remove from all private lists as well. the wording of the warning when allowing yourself to be added to a public list should suggest follow vetting be turned on if they do not personally want just anybody to be following them.
EDIT 3: WHEN someone tries to follow you by adding you to a private list, it should say it as such in follow request/notification "X followed you via private list", and when someone adds someone they followed normally, it should say "X added to/removed from a private list" to better allow transparency and allow users who have reason to be wary of harassment/plants and the like to know "hey maybe i should double check that this person isn't malicious"
EDIT 4: this also makes mutuals only a really easy list to be able to be posted to, another highly requested feature.