Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

User lists #531

Open
12 tasks
alltheseas opened this issue Feb 5, 2023 · 14 comments
Open
12 tasks

User lists #531

alltheseas opened this issue Feb 5, 2023 · 14 comments
Assignees
Labels
feature New feature request lists User lists tracking Tracking issues

Comments

@alltheseas
Copy link
Collaborator

alltheseas commented Feb 5, 2023

Tasks

User Story

As a Damus user who'd like to group together others users, I would like the capability to create, and modify lists of users, so that I can organize various user groups according to my preferences.

As a Damus user who'd like to discover information from a focused groups of users, I'd like to be able to see, and follow lists of users, so that I can find information from a particular group of people.

Acceptance Criteria

MVP

Full list implementation

  • List can be set to public or private (encrypted) #2445
  • Damus user can create new lists in lists menu (profile icon -> lists menu),
  • When creating a new list, user must specify a list name (for instance, "nostr devs"), and can optionally specify a description (for instance "a list of devs who have contributed to the nostr protocol"). Suggested max 25 characters for list title, and max 100 characters for list description.
  • List creator can add users to lists by searching by npub, or name from the lists menu,
  • List creator can add or remove a user from an existing list by going to a user's profile, and hitting the three dots
  • List creator can add or remove a user to an existing list by holding a tap and opening the hidden profile menu
  • Users shall be able to un/follow public lists,
  • Public lists shall be shareable by any user (appear as quote note/reply).

Future Question/Tickets

  1. It is possible for Damus to suggest initial follow lists to new users.
  2. See lists that I'm a part of
  3. Remove myself from lists I'm a part of
  4. Pinned lists - enabling pinned list shortcuts in home page
  5. Report lists
@goodc0re
Copy link

I'd also like to have an equivalent to twitter lists in nostr.

The question is, should it be a NIP or should nostr clients find other ways to do it.

@alltheseas
Copy link
Collaborator Author

@BenGWeeks said he was "thinking about it".

Is this a developer commitment Mr Weeks?

😃

@BenGWeeks
Copy link
Contributor

Ha ha, apologies; I've been out and about and not had much hands-on time recently!

@BenGWeeks
Copy link
Contributor

PS Love the user story / acceptance criteria format! I do wish GitHub allowed you to build a proper backlog like DevOps does sometimes!

@alltheseas
Copy link
Collaborator Author

PS Love the user story / acceptance criteria format! I do wish GitHub allowed you to build a proper backlog like DevOps does sometimes!

I am very happy to build a product backlog, add milestones for Damus.

I am in the process of roadmapping this for two other nostr projects.

In order to do this I would need permissions for github projects & milestones.

@alltheseas
Copy link
Collaborator Author

alltheseas commented May 31, 2023

Ideally lists are NIP-51 compatible on day one.

https://github.com/nostr-protocol/nips/blob/b12c93c452814ffa5f06aef95b60775bc86eaf58/51.md

@alltheseas alltheseas added the feature New feature request label Jun 30, 2023
@alltheseas alltheseas moved this to Backlog 🪵 in Damus Roadmap 🛣️ Jun 30, 2023
@alltheseas alltheseas added this to the 1.6 Profile Zaps milestone Jul 12, 2023
@alltheseas alltheseas moved this from Backlog 🪵 to Planned 📝 in Damus Roadmap 🛣️ Jul 15, 2023
@alltheseas alltheseas changed the title User lists [Feature Request] User lists Jul 15, 2023
@jb55 jb55 self-assigned this Jul 31, 2023
@jb55 jb55 moved this from Planned 📝 to Sprint 🏃‍♂️ in Damus Roadmap 🛣️ Jul 31, 2023
@jb55 jb55 moved this from Sprint 🏃‍♂️ to Planned 📝 in Damus Roadmap 🛣️ Aug 4, 2023
@alltheseas
Copy link
Collaborator Author

@robagreda what do you think of

https://damus.io/note16g5k46tj9lp8tsu6uadtvhyp88c7cvu5ltjqwknrv8k2c8lx8tvqhqr8da

cc @danieldaquino I'm suggesting lists for following sprint

@alltheseas
Copy link
Collaborator Author

alltheseas commented Nov 9, 2023

How might we think about dunbar's number 150 when it comes to contact lists?

Via TGFN pod https://podcasts.apple.com/us/podcast/thank-god-for-nostr/id1694064646?i=1000630827190

@alltheseas
Copy link
Collaborator Author

https://damus.io/nevent1qqs964flf4j56zsdzep7c8laz4c6f3pkhl3zc46a7k95sk5lr9u0jksv4e7ta

A problem that user lists could solve:

the feeds move to fast and i need lists, stacked and categorized. Often i feel like i miss good posts and only find them on the lazyweb days later.

@alltheseas
Copy link
Collaborator Author

twitter lists approach

@robagreda

twitter lists

@alltheseas
Copy link
Collaborator Author

@robagreda designs are here @danieldaquino damus.io/figma

screenshot

Screenshot from 2024-09-06 13-24-19
Screenshot from 2024-09-06 13-24-00

@alltheseas
Copy link
Collaborator Author

alltheseas commented Sep 7, 2024

Related:

Convert muted lists to nip-51

#1026

#1025

Convert local bookmarks to nip-51 #1024

Pinned note #609

@danieldaquino
Copy link
Contributor

@jb55, do you currently have any branches where you have integrated any NostrDB version containing ndb_query_result, ndb_begin_query, and ndb_query support?

I will need that kind of query capability to store and retrieve user lists, and I see the tip of master on https://github.com/damus-io/nostrdb/tree/master has these, but not the nostrdb we have on Damus iOS. I want to try updating nostrdb, but if you have already started working on that, it might be faster for me to pick up where you left.

I see https://github.com/damus-io/damus/pull/2121/commits, but there seems to be many other changes mixed in and I am not sure which commit range to use, or if there is any clean cut for just the new nostrdb version integrated without the other local relay model stuff

@danieldaquino
Copy link
Contributor

@jb55, do you currently have any branches where you have integrated any NostrDB version containing ndb_query_result, ndb_begin_query, and ndb_query support?

I will need that kind of query capability to store and retrieve user lists, and I see the tip of master on https://github.com/damus-io/nostrdb/tree/master has these, but not the nostrdb we have on Damus iOS. I want to try updating nostrdb, but if you have already started working on that, it might be faster for me to pick up where you left.

I see https://github.com/damus-io/damus/pull/2121/commits, but there seems to be many other changes mixed in and I am not sure which commit range to use, or if there is any clean cut for just the new nostrdb version integrated without the other local relay model stuff

So far I have been trying and experimenting with 3 different strategies:

  1. Implement/backport the query capabilities to the nostrdb version we are running on: Learned more about how lmdb queries work, but feels wasteful since that work has been done on the latest nostrdb, so I paused it
  2. Update nostrdb by running ./copy-ndb (an altered version to match the current project structure) and fixing compiler errors: Made some progress here, but currently fixing imports related to CCNA
  3. Getting Update nostrdb, switch to local relay model #2121 to a mergeable state (without completing the remaining local relay model work): Can't compile, also currently fixing imports related CCNA

@jb55 can you please advise what you think the fastest path to getting NostrDB query support on damus iOS would be?

I am looking to get ndb_query_result, ndb_begin_query, and ndb_query on iOS (To do a query equivalent to $ ndb query -k 30000 -a <USER_PUBKEY>, so that I can reliably store and fetch user lists locally to build this feature more robustly. I don't need the entire local relay model support, I just need better query capabilities similar to the ones we have on the latest NostrDB.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature request lists User lists tracking Tracking issues
Projects
Status: In Progress
Development

No branches or pull requests

5 participants