You are reading content from Scuttlebutt
@mix %iietnaHpffBuPwLjGj+SnmQ46R6TaipBRkgxHsyEDQA=.sha256

Design challenge | Threads

patchbay 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!)

      tangle-thread.png
      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...

@Christian Bundy %oMoiwJxgD3WmkP/4GLNSmVIsLp5CoBdQ99YHwBkw6M8=.sha256
Voted # Design challenge | Threads ![patchbay threads](&rOaGFhSKNF2uuOgUhBIIN+k7
@Christian Bundy %XBGBvOyzHKIT3UPeiBTq1xJc5TWWC1b/rAmLLsyM7xg=.sha256

@mix

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

Is it different? I thought that each message referenced the previous message that it's replying to, so non-linear threads are already a thing (?), it's just that we show them linearly. Is that right, or am I misunderstanding? I think deep nesting and fractal discussions are incredibly useful, but I also spent almost a decade (😱) on Reddit so I'm biased.

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 like the guideline of 45-90em, and my personal preference is definitely on the shorter side of that (although again, I know that's just preference).

@mix %p2sBD9HDdj+O7yXr2NCtfUR2bl6Ri5u+3fjyr3hbN2k=.sha256

Is it different?

Yes, I feel it's fundamentally a different conversation space. My intuition is to visually and programmatically keep them distinct rather than munging them together and being suprirsed when the medium that emerges from our sloppy invokation / frame is a confusing a nd jarring mess. Ooooo and look at me! Turns out I've got strongish feelings about this. I'd love to explore this tension in conversation. I also think I want to spend some time making sure we're on the same page about how threads work. The ssbdrv description about tangles is really on point and a great reflection of how things are working in threads (from my subjective perspective). Highly recommend reading the early part of that README

User has not chosen to be hosted publicly
@mix %NHcvDqem+Em2IAHL6J4+RmaDFHPoABHhywqxMpg81rw=.sha256

talked with Christian on the phone just now about a bunch of things. We're gonna pull together a trello board of things and start in on them

@Christian Bundy %KpX9CGJpnP2ivYB7efsBdoFils0dIfBl9236DSQkbis=.sha256

@greg

Thanks, I knew that didn't look right!

@Christian Bundy %L7tKCzQreNjqAsTTBNCPkjtxNUboOZt/6U7pjHjeyBE=.sha256
Voted [@Christian Bundy](@+oaWWDs8g73EZFUMfW37R/ULtFEjwKN/DczvdYihjbU=.ed25519),
@Christian Bundy %/BVENT+GDdhMN8L7VvnvsWsWxMwBPO41rlzRwyUGgDA=.sha256
Voted talked with Christian on the phone just now about a bunch of things. We're
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@Christian Bundy %oun5THB1FBBIt4G5+QKv2dLDMiqZ85I6n3S9A3fU9co=.sha256
Voted …but irrespective of the answer, it's useful and good to check assumptions
@Humberto Ortiz Zuazaga %vYqmaZd8pAmuNXWM/qOJVNeVrx6ucrrED6793VlhhK4=.sha256
Voted We can always make reference to what's worked really, really well in the pa
@Humberto Ortiz Zuazaga %3X1BrIbHr6p7B25IBnTQ38gDQPyGg2ZS8LLqyuFfnms=.sha256

This troglodyte approves. I've always gotten a Usenet vibe from scuttlebutt, even if none of the clients look like NNTP readers. (Well, except for ssb2mail which you could feed into GNUS if so inclined).

@cel %LSiTHvEsIZyyWjgViv4R8ta733KvqISpvr9d4xifppw=.sha256
Voted We can always make reference to what's worked really, really well in the pa
@cryptix %+0EDt+DS17zpDVq0jB6DdYD7pLvmyhTPbuhkM+2JkRo=.sha256
Voted # Design challenge | Threads ![patchbay threads](&rOaGFhSKNF2uuOgUhBIIN+k7
Join Scuttlebutt now