Design challenge | Threads
I've been dreaming about how to make clearer threads. Here I want to collect all my experience and thoughts to date, to better inform future @mix , and maybe others who'd like to join me on this journey
Not sure about how to arrange this so I'll just start
Threads need
see the history of a conversation
in scuttlebutt messages arrive at different times and we can't currently see that well (advanced challenge!)
source : ssbdrv docs- show if a message was missing the context of another message when it was posted (e.g. there was a branch while someone was offline)
- extend the current tip / head of the discussion
- nested reply - reply to a specific message as an asside
- where should this be displayed: nested under the original,at the current head of the conversation but pointing back, both?
- should we support deep nesting, like reddit? I feel like thats a fundamentally different conversation form, so should be a different type of message or something
- fork threads - create a new fork thread from a particular message
prior conversation here : %Ff29qCa... - bundling - collect multiple consecutive posts from the same person into a more dense form (so as not to repeat the avatar)
- who'se in the room
- a way to see who has participated
- a way to jump to a particular persons contributions
- a way to "leave the room" - declare you're no longer particpating
- a strategy for updating the thread when new messages arrive
- if the messages fits on the end according to causal sorting put it there
- if the new message should fit somewhere mid-thread according to causal sorting .... alert??
- stop changes while composing a reply
- alert if there's been a fork / nested reply?
Messages need
- vital information visible
- content of post
- author name
- avatar (image)
- time they apparently posted it (perhaps with a warning if that's incongruent with causal sorting)
- secondary info / functions
- expressions - who liked / emoji'd whatever about this
- raw content - reveal the raw msg JSON
- backlinks - what else has referenced this
- MsgId - get a copy of the cypherlink for the msg
Layout wise, the content of the post is the primary content, so this should be in pride of place.
We want to take advantage of the horizontal space of a screen - I've experimented with this and found message content much wider than 850px starts to look really stringy (short posts become a single narrow line of text) and longer posts get harder to scan.
I've tried pushing content out to the sides which is non-vital. e.g. avatar and timestemp on left, likes and channels on the right. This is a balance too, e.g. if we stack avatar + image + timestamp vertically in the left side then the minimum height for a message is too high for a small message, but if we stack them horizontally out sideways it looks crap...
fields which have wildly variable width also make design hard. e.g. names vary in length from short (peg) to really long (dangerousbeans). Similarly with channel names. Putting these above the message means there's space for them but it also puts content in the main "flow" which is not vital., and makes the overall thread length (height) longer...
I think I need to move to mocking things up in Photoshop.
TBC...