Using Discourse as a social media platform

I’m interested in the topic too! But I think a concrete definition of what is meant by “social media” is a critical first step to really turning this discussion into something practical to potentially advocate for and hopefully implement. As you and others point out, Discourse already has many aspects of “social media” in its native set of functionality (or in plugins):

  • User profiles
  • User activity
  • Following users
  • User discussion
  • Sophisticated content formatting, handling (better, actually, than most social media)
  • Lists of content by date/activity/etc.

I could go on, but you get the point. So what’s the difference between Discourse and social media? Identifying what Discourse does not have seems likely to be more fruitful in figuring this out. The one major thing that immediately comes to my mind, which I think you touched on in your original post, is the lack of a “feed” view.

The major difference between what Discourse has now (e.g. “Latest”) and a “feed” view, is the ability to directly view the entirety of a topic’s contents and then interact with it from the main feed. This has many implications, some good, some perhaps bad, but from a user experience perspective something it does well is to create a lower friction environment for consuming and interacting with content. One of the main benefits as I see it is it helps a user maintain consistent “context”, e.g. maintain their position in the feed. Twitter does a particularly good job of doing this across browser navigation (forward/back), while Facebook doesn’t, but lets you better interact with things within the feed (e.g. expand comments, make comments, etc. without leaving feed).

Discourse also does well with forward/back, returning to the last scroll position and highlighting the last-clicked topic briefly. But the sheer density of Discourse topic lists can still make it challenging to maintain one’s place, and more importantly the topic-only view often doesn’t give you enough to know whether you want to engage further with something.

Now, I think a “pure” feed view that reproduces how existing social media sites work is not necessarily desirable. It is arguably opposed to some of Discourse’s ideals, e.g. avoiding shallow, knee-jerk interaction, etc. But I don’t think the feed view concept is necessarily inherently opposed to those ideals, or rather, I think it’s worth contemplating how one might gain some benefits of that model, while maintaining the benefits of Discourse’s current approach.

There are a couple of ideas that spring to mind. First, let’s assume we have a familiar “feed” view like Facebook or Twitter, ranked by some algorithm/model, perhaps as simple as recency or popularity. It shows “posts”, which in Discourse would be Topics. Whether full topics are shown or just summaries, and whether comments/replies are shown by default or not are a couple of important details of the implementation that deserve consideration.

Showing full topics by default is problematic because it can make for an extremely long scroll, and somewhat defeats the purpose of the feed view since you have to fully scroll past at least the topic starter for each topic to see the next one. So summaries seem advisable. There’s no easy way to generate good post summaries that I’m aware of (this is different than Discourse’s ability to summarize a discussion), so a naïve “collapse body contents beyond X characters/words” approach seems likely, and is most widely adopted probably for that reason. Maybe not ideal, but I don’t know a better alternative yet. As with most other implementations, it could be simple click-to-expand (e.g. “show more”), though ability to either jump to the bottom from any point (i.e. “next topic in feed”), or re-collapse and bring you back to where you were in the “feed”/stream, would be ideal. Facebook doesn’t necessarily have this (and it’s irrelevant for Twitter since it has extremely limited “post” length :grinning_face_with_smiling_eyes:).

Comments/responses could similarly be click-to-expand, though I think popping up a full composer from the bottom in an overlay (like it does now when viewing a topic) would be the ideal behavior there, rather than in-line reply authoring like Facebook. This, I think, would help encourage longer, more in-depth replies. You could also quote from the in-line topic view as usual. The only difference really is that if you scroll up or down past the topic contents, you’d see other topics immediately (at least in a collapsed view).

An alternative to expand/collapse, which might also better serve the desire to show comments and ability to interact with topics with a more sophisticated and spacious writing area (thus avoiding some of the negative incentives of small comment boxes, e.g. shallow interaction), might be pop-up topic views, i.e. a modal window, dimming the background, but dismissible with a click outside the window. This is like the Reddit model. I don’t love everything about this approach, but I think most of my concerns with it are UX-related and could be improved with e.g. better interpretation of user intent with clicks (I find myself clicking out of Reddit threads too easily). The benefit is you have a lot of space to present your content, it encourages reading through the topic and interacting more deeply.

I think the overall feed approach, and the “Reddit” model in particular, is especially interesting to compare to Discourse’s existing approach. There is an argument to be made that the existing topic lists are more shallow/skimmable than e.g. Facebook’s feed view, where you can at least see some of the content beyond just a Title. Of course the Topic List Excerpts Theme Component takes care of this to some degree, but still it’s not the same as a real “feed” view. That said, perhaps it’s a good starting point, and then the only thing you might want to implement is this “modal” topic view idea (or click-to-expand in-line, but this seems like a more significant challenge to implement to my naïve, non-programmer brain). @anon73664359 do you think such a setup would meet more of your desire for a “social media” version of Discourse? I.e. Discourse with Topic Excerpts, Latest topic View, and a modal pop-up topic view? If not, what else is missing?

6 Likes