Presence features for forums

(Sam Saffron) #1

Many (almost all) forums out there have features that inform you of the current state of activity on the forum.

Something awful


The concept behind this feature is that if feels better to participate in a forum where you know lots of people are active.

This feature often gets pretty pervasive. It will often display online status of each user when you see an avatar. What if I don’t want users to know I am online at 4AM every morning?

At Discourse we have no presence related features at the moment. Is presence a core feature of online discussion?

Can presence features be implemented in a non-obtrusive way? Should this be a core feature in Discourse or a plugin?

Online Users Status in Realtime?
"Who's online now" - presence widget for WordPress
Hide login status
Ability to Follow and Friend other users
See who all are writing replies to a topic
The end of Clown Vomit, or, simplified category styles
Who's Online Plugin (discourse-whos-online)
Create a link that will bring a user to their own profile
Online Users Status in Realtime?
No "Members Online Now" block but how about a Green Dot?
Better cooperation between staff members
List of project ideas for Google Summer of Code 2016
[Suggestion] Give users page dual purpose - as a 'who's online' page
(Lowell Heddings) #2

My problem with that feature is the giant unreadable list of names, most of which I don’t care about.

What might be more interesting is a way to track people that you frequently converse with, along with the ability to keep others from seeing that you have logged in… if you recently posted though, there is no privacy violation to show your name in the list.

In fact, a recent posters list instead of an online list might make more sense. The conversation is more important than seeing who is reading.

(Greg Hewgill) #3

A giant list of everybody online in the whole forum seems intractable, like @geek said. What might be useful is a list of people participating in a topic, sorted by last-seen time. But should this be:

  • last seen doing anything (including reading) anywhere on any topic
  • last post anywhere on any topic
  • last seen reading this topic
  • last action on this topic (like, etc)
  • last post to this topic

Sometimes people might want to read but not necessarily reveal their presence until later. Posting or taking some other actions is discoverable in other ways, so it doesn’t seem like a problem to make that information available easily.

A list of active users could be sorted into groups, such as “last hour”, “last day”, “last week”, etc. A glance could show who are the frequent contributors and who is occasional.

(post) #4

I like Stack Exchange’s “last seen” feature in the profile. You can’t opt out from it; yet it seems to have caused no major complaints over the years. It’s incredibly useful: it allows you to see whether a user is a regular, or has abandoned their account years ago. Showing it is a public service, and I would like to see that in Discourse’s core - you’d absolutely have to give the option to turn off the public display, though, at least on a global config level.

When it’s turned on, maybe Discourse’s core could also expose a “is_online” CSS class on Gravatars and names of users who are online? That would allow you to do all manner of “show green dot next to user name if user is online” shenanigans with just a bit of CSS.

True, but arguably, as on a Q&A site, seeing fresh content coming in makes you feel even better. When I see a list of topics where the last response is 2 minutes old I know I’ve come to the right place. A forum that works doesn’t really need presence lists IMO.

Of course some forum owners are going to want a presence list anyway; this feels like a job for plugins. There are so many ways of implementing a cool “who’s online” list (really creative ones, too, like a giant gallery of Gravatars like in SE chat, or a Google map showing where users come from…")

(Tim Stone) #5

Well, this is not entirely true. Since your view is updated as new posts come in, you can get a rough feel for the level of active participation that’s happening while you’re visiting.

What Discourse currently lacks is a view of the passive participation, where people are viewing existing content but not creating anything new. While I’m personally more interested in the active participation level of a site, I can see the value of having a measure of the passive participation too.

However, I also agree that this can be rather pervasive. Maybe to get the best of both worlds, Discourse could introduce a core feature that displayed only the aggregate count of “eyes on topic” for each topic on the front page?

(Sam Saffron) #6

That really worries me, from a simple feature it easily can become a huge can of worms and settings.

(Sam Saffron) #7

True and we also have “Last Seen” on users profile, its just not centralized and pushed in peoples faces.

(Tim Post) #8

Not really. Knowing who is online should not affect the way that you participate in any discussion. You either find the discussion interesting or entertaining and wish to add something to it or you don’t. The only use for presence is showing people that they didn’t arrive to an empty ballroom, it’s the conversation that makes people pick their dance partners.

While others note that a nice big roster of recently active users might make people more inclined to stick around, the lack of one can make people do the reverse. I’ve modified PHPBB for people so that this never happens, and I’ve also written hacks to make sure the active users display never looks too much like a sausage fest. So, if you implement this, be prepared for rather odd and obnoxious feature requests on top of it.

What you could do, out of the gate is implement a /online route which shows a display of gravatars just like Stack Exchange chat. When someone arrives, let their gravatar swoop into the list. When someone is inactive, reduce the opacity. When someone leaves, let them slide off. Make new registrations shimmer or something. This would just be a simple grid like this TimPost SuperOverSiplificator ™ demonstrates:

* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *

That’s it. You could update some text somewhere on that page as well, but it gets the job done. Admins might find this particularly useful as well. It shows you who is here, who is active, who is snoozing and who comes and goes. It’s not this ginormous useless string of links.

People could scroll if they wanted a longer list, but the farther down you got, the less interesting it would become.

You could then link to this page strategically as needed:

There are currently (x) users actively participating in discussions. (n) new users joined our community today

… or something like that.

Leave everything, and I really mean everything else to plugins.

(Sam Saffron) #9

I follow, but one perceived advantage is that brand new users can be pushed over the edge and actually start participating if they know a big pile of people are around to help them. I am not certain this is true, but think it is perceived.

(Robin Ward) #10

I personally think the online count is a mostly useless feature. It’s much more useful to see topics pop up near the top and get new posts than it is to see a number like that. I’ve always thought those numbers are much more useful to the site owners than the participants.

I think it would be much cooler for us to aggregate statistics of various forums on our future directory of forums on Each forum could have a few sexy charts showing usage, related to other forums, etc. We could even do up some sexy javascript charts in d3.js.

(Tim Post) #11

This pertains mostly to starting discussions, and I think whatever value it once held has seriously depreciated. If you’re searching for a solution to some kind of problem, you’re going to arrive at a forum or Q&A site in the results. At that point, you’re either going to:

  • Find exactly what you needed
  • ‘I’m having the same problem, except in my case …’
  • ‘Has anyone found the solution to this?’

… and/or move on to the next result.

The real value here is enticing people that seek out forums based on topic alone, not a specific bit of information that fits within the topic. For those people, the front page of a Discourse site shows quite a few signs of life if the site is active.

The place where it might help the most is on new sites that have not yet developed a regular following. Yet, it can also be self defeating for this purpose if the numbers reflect accurately. My last job was with a rather large web hosting provider, a very common task for the in house programming team was making discussion venues seem more active than they actually were. So, if you implement this based upon the perceived value placed upon it, that’s one sort of thing you’ll be confronting.

I’m not saying don’t do it, but do it in a very generic way and leave any kind of specialization up to plugins. It’s a far better idea to concentrate on adding value to Discourse by coming up with ways to drive traffic to new legitimate communities, and possibly even more incentive to go with the hosted option.

(Sam Saffron) #12

I am pretty certain @codinghorror is adamantly against such a feature in core, I can totally understand why. I am just struggling to understand why every forum under the sun ends up having this in some way, shape or form.

Faking activity … now there’s a plan :blush:

(Tim Post) #13

I’ve made thousands of dollars doing that. Wait … that didn’t come out as flattering as I thought it would.

(Clay Heaton) #14

I personally like small indicators that appear in the context of a topic, next to the user’s avatar or username, that shows whether they are online now (like the green circle here, or something of that ilk):

(Jeff Atwood) #15

Really not a fan of “presence” in any way, shape or form – for reasons outlined above by many others – and I call this at best plugin material. It is completely non-essential, heck, it’s barely useful in the places that have it…

I think Robin had the right idea

Would much rather focus on things like that.

(Ray Harris) #16

It’s one of the coolest parts of a major forum I frequent, NeoGaf. The homepage is two categories and a 5,000+ list of people online. For that case, it’s really awesome and works well to create an ineffable sense of community. In other smaller communities, I see the online users list as an encouragement to contribute. “Oh, someone’s online,” I think, “I should post now and they might respond.” If not a list of names, a digital count of users could accomplish this as well. But in lots of small, very familiar communities, seeing names can be specifically valuable. Sometimes I’ll message someone on Steam/gChat/IRC just because I see them online on the forum.

But I’m still with the majority of above posters on this one. It’s not really critical and aggregate statistics are much more interesting.

(Doug Moore) #17

I just wanted to throw a use case out there:

Turn-based Forum games. I think the example of Mafia was brought up earlier, but we play others on a message board I am on. It is often important to know when a certain user is active in a thread, so that you know if a game is going to move forward, if you need to send them a PM to let them know it is their turn, etc.

(Ides) #18

I have found on smaller forums it is extremely useful to know who is online and where they are on the website. This is primarily because I don’t want to sit by the computer and constantly hit refresh. Essentially the small reason behind this function is because you cannot dynamically see the updates. This can help figure out when to expect a reply, but Discourse allows for automatic updating and various forums of tracking. I would find it cluttering to see if others are online unless I have them added as a friend but usually I have them added on Skype or some other service as well.

During the writing of this post I have received an update from another topic that I am currently tracking. It is already proving more useful than knowing if someone is online.

(Gweebz) #19

I currently host a forum (phpBB) used by my gaming clan which has about 100 active users. As a forum owner/admin, I see real value in these statistics. I like knowing who is frequently active on the forums, even if it just means they are reading others’ posts, because it helps me determine who would make the best moderators. Also, because we are all in different time zones and most of us work or go to school, it helps me know when the majority of my clan has collective free time so that we can organize practices & matches more effectively. The rest of the ‘presence’ features on phpBB, like ‘most users online ever’ and ‘newest registered user’, seem useless to me as a forum owner.

I also visit other forums frequently, and I can honestly say that I never look at these statistics. I wouldn’t mind one bit if they were not available to me, as just a standard forum member.

My point? Well it comes down to this…

Regular forum members probably don’t care about other peoples’ activity. They do care if the forum is dead or not and they do care if a topic they are involved in gets updated, but there are better ways to solve those problems then by using presence features.

Site owners do care about their forum’s health and often have a much more vested interest in the activity, participation, and ‘presence’ on their forum. And let’s face it, all admins love seeing stats and graphs. Even @codinghorror wants aggregate stats for himself (and others) about ALL the Discourse forums. He doesn’t care about stats on each individual forum because he won’t be managing those (other than meta of course). I do want these stats on each forum because I will be managing an individual instance of Discourse.

My suggestion is to show these presence stats to admins (and maybe mods or other super users) but there is no reason to clutter the UI of normal members because I don’t think they provide any value to them.


I consider this a critical feature for the most critical activity that you need to acomplish while you create a community: GROWTH.

A community it is not stackoverflow, where, I guess, most traffic cames from search engines.
So, that’s why I think some features working there, not necessary are good here. And viceversa.

If you want to create good conversations (which is one of the missions of Discourse) you need to build a context where community happens and grows. To startup a community, you need to use a lot of different techniques. One of the most famouse technique is “fake it until you make it” from Reddit guys.

I know, it does not seems the ultimate tool to growth a site, but it works. You need some way to give signal to newmembers about this new space, and the most important signal is that it is growing. Also signals about how many people used your site today, yesterday, now, etc, are very important features, they help a lot. Discourse has sources and interesting data to build something interesting with this.

There is a lot of evidence that in Youtube, people tend to see and share videos that has already seen by millions. In facts, people judge a video using the number of views of the videos. (Ref: [Building Successfull Online Communities])

Robert Cialdini’s entire book about Persuasion.

Building Successfull Online Communities: An empiric study by MIT Press

In short, would be great if there is a way to see how many people is on a site, on a topic, who they are, etc. Like the “old” forums.