ameliorate
ameliorate copied to clipboard
Allow comments/threads per node/edge/topic
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
Design notes:
Comment UX:
Notification UX:
- 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