ameliorate icon indicating copy to clipboard operation
ameliorate copied to clipboard

Allow comments/threads per node/edge/topic

Open keyserj opened this issue 1 year ago • 1 comments

Is your feature request related to a problem? Please describe. I want to be able to ask questions, add suggestions, mention thoughts on other people's topics. Right now, I can only score other people's topics, and to convey anything more, I need to do so outside of the tool (e.g. in a meeting).

Describe the solution you'd like

  • threading per node/edge/topic
  • notifications
    • in app? email? probably ideal to have a user config)
    • maybe this should be a follow-up issue
  • also possibly a follow-up: user profile pic (to help distinguish comments)
  • setting to enable/disable per topic
  • creator should have power to resolve comments

Questions:

  • do we need to add flagging/reporting/banning?
  • do we need to add a warning when clicking on links?

Describe alternatives you've considered

Additional context

  • this will probably make #198 even more desirable

Technical ideas

keyserj avatar Sep 27 '23 20:09 keyserj

Design notes:

Comment UX: image

Notification UX: image

  • Table at /notifications
    • header: mark as read/unread button
    • per-row: bold if unread
    • checkbox to select
    • message
      • keyserj commented on keyserj/mta-congestion-pricing: "blah blah blah..."
    • link to source
    • time
    • unread

Comment Schema:

  • id
  • authorName
  • topicId
  • parentId
  • parentType ("topic", "node", "edge", "comment")
  • content (length 10k)
  • resolved
  • createdAt
  • updatedAt

Notification Schema:

  • notifiedUsername
  • (not needed right now) sourceId (for marking as read on view of the source)
  • (not needed right now) sourceType
  • message
  • sourceUrl
  • time
  • unread

Notable functional decisions:

  • one level of threading like Google Docs (shouldn't need more than one level, and UI overflows with more)
  • just generate a profile pic for now (e.g. https://avatar.oxro.io/avatar.svg?name=keyserj&caps=1)

Questions:

  • want comments before posting on HN because that helps enable async collaboration, but is it worth adding notifications?
    • in-app notifications (at least viewing a table with read/unread) seem required to not miss comments for me
    • email notifications seem required to not miss comments for infrequent users, and these would be the intent for async usage
    • but email notifications seems like a huge pain because
      • setting up an email service seems like a lot of work
      • allowing users to unsubscribe (ideally by topic vs by thread vs all notifications) sounds like a lot of work
      • probably should inform users when they sign up somehow that they'll get emails for comments?
  • what to do about comment.parentId's type?
    • parent could be a topic, whose id is a number, but parent could also be a node/edge whose id is string

keyserj avatar May 16 '24 21:05 keyserj