We should not be using follow lists, to determine what to read, to attest to someone being worth interacting with, or to publicly declare frenship.

We should not be using mute lists, to mark what we consider spam, or to denote "npubs who get on our nerves and should just be quiet for a bit".

That is bad design dragged in from legacy social media and it is holding us all back. And now we're coming up with bug fixes and workarounds for this stuff, or cracking jokes about how crappy it all is and declaring the crappiness to be our Proud Nostr Tradition, instead of admitting that we need to just scrap that whole concept.

Reply to this note

Please Login to reply.

Discussion

Twitter used lists because it started out with MySQL (owned by Oracle), which is a relational database, containing a bunch of gigantic tables. If there is a "follow" table, you would have to read the entire table out, and search through the table to find the row, to update a single row. The rows cannot be searched for and edited in isolation because the relationship is from table-to-table, not from row-to-row.

We are using events, which are json (or yml/xml/whatever) documents, and similar documents can be clustered at run-time. Furthermore, you can create direct relationships between individual documents. This is the programmatic equivalent of having a separate table for every single follow. It only makes sense to put _dissimilar_ events into a collection/list event, as the similar ones can be collected and displayed together, at run-time, by saying, "please display the content of all of the follow tables, one on top of the other". There is no obvious reason to store them all together, just to display them all together, and this increases the risk of entire tables getting "nuked".

And to store them together, in one long, ever-expanding table, is to break two of the core advantages of using documents, rather than tables: small event size and individual addressability of each item. If you put all of the follows in a list, how do you then reference a particular follow? If you keep expanding the size of the events, to accommodate ever-expanding lists, how do you keep binary data out of events and prevent spammy load attacks? Break the list down into chunks? Why not just do that, from the get-go? What size should the chunk be? How about... one row?

And now we have the problem that people don't want to put all of the nubs they are interested in, into one list, but they want to put some npubs into multiple lists. There should just be one entry "me and this npub are linked" and then other information "this npub is a good friend, posts a lot of news, and I want their stuff to surface more often than other npub's stuff". The relationship should only be established once, but categorized n times.

And, here's the best part:

You can categorize people without establishing a relationship with them.

How do we mute annoying people?

I agree, it would be nice to have more nuance and variety here.

Damus has β€œmute temporarily” already.

Something I think would be great but we’ll probably have to wait for AI to get good: topic-selective muting.

Then, if you like notes on subject A from a person but can’t stand it when they talk about B, your feed can reflect it.

Oh, heck, yeah. Hadn't even thought of that.

nostr:npub1m3xdppkd0njmrqe2ma8a6ys39zvgp5k8u22mev8xsnqp4nh80srqhqa5sf

Its an interesting idea. i think the human labels for navigating might get us pretty far - more so than AI embeddings. Using some ML and NLP could clean up that feed even more. With embeddings, scale is the biggest issue. They're expensive to hold and compute with. Bet there are open source solutions to model off of though.

I’m not very technical, by human labels do you mean hashtags? They’re not used enough for this functionality

He means the label NIP 1985.

And also 1983 and 1984, of course.

There’s so much potential if AI can detect topics and tone well. It could be a powerful way to find accounts of interest to users, not just selectively muting accounts when they are not of interest.