# "I read it" button alongside "I like it" button?

**URL:** https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206
**Category:** Feature
**Created:** [October 29, 2016, 5:11pm UTC](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206 "2016-10-29T17:11:44Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![kuba-orlik](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuba-orlik/32/318490_2.png) [@kuba-orlik](https://meta.discourse.org/u/kuba-orlik)
#### Post date: [October 29, 2016, 5:11pm UTC](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206/1 "2016-10-29T17:11:44Z")

</div>

Is there an existing plugin or a built-in way to add an “I read it” button to posts? Our team is in a dire need to have the ability to publicly mark posts as read, without sharing semantics with “liking” something.

---

<div class="post-metadata">

### Author: ![mr8](https://avatars.discourse-cdn.com/v4/letter/m/f9ae1b/32.png) [@mr8](https://meta.discourse.org/u/mr8)
#### Post date: [October 29, 2016, 6:08pm UTC](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206/2 "2016-10-29T18:08:00Z")

</div>

I’ve had a similar request for a feature like this on my site.

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [October 29, 2016, 8:23pm UTC](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206/3 "2016-10-29T20:23:48Z")

</div>

For what purpose? What is the goal? What would this achieve? Discourse knows exactly what you have read and even how long it was visible on your screen…

---

<div class="post-metadata">

### Author: ![fefrei](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fefrei/32/119538_2.png) [@fefrei](https://meta.discourse.org/u/fefrei)
#### Post date: [October 29, 2016, 10:44pm UTC](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206/4 "2016-10-29T22:44:36Z")

</div>

I guess that you could build that with the retort plugin and a custom emoji that symbolizes “read”:

> [@Discourse Retort](https://meta.discourse.org/t/retort-a-reaction-style-plugin-for-discourse/35903):
>
> NB This has recently been given a new lease of life thanks to sponsorship of @Hifihedgehog & the community at [https://forum.tabletpc.review/](https://forum.tabletpc.review/) and is compatible with Ember 5 and Discourse 3.2 (and so far 3.3.x), but the message is still the same, unless you really want to use Retort, please consider [Reactions](https://meta.discourse.org/t/discourse-reactions/183261) as that will eventually take on some of the Retort exclusive features (timeline TBD). Retort is a plugin which allows you to add slack-style reactions to posts Install it u…

---

<div class="post-metadata">

### Author: ![kuba-orlik](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuba-orlik/32/318490_2.png) [@kuba-orlik](https://meta.discourse.org/u/kuba-orlik)
#### Post date: [October 30, 2016, 7:45am UTC](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206/5 "2016-10-30T07:45:07Z")

</div>

When we do some kind of announcement on our forum and we want to make sure that all team members read it, we can either:

- ask team members to “like” the post
- ask the team members to leave an answers saying “I read it”

Neither makes sense. The first one remove the “I like it” semantic from the “like” button, so if someone wants to express their fondness of the post they need to respond to it with “I like that post” posts, which can pile up and make the discussion less focused.

The second one leads to lots of unnecessary posts, which can pile up and make the discussion less focused, as well.

> [@fefrei](#):
>
> I guess that you could build that with the retort plugin and a custom emoji that symbolizes “read”:

We will give that a try, thanks! Choosing an emoji each time might be a little bit cumbersome, but we’ll see how it works in practice.

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [October 30, 2016, 8:25am UTC](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206/6 "2016-10-30T08:25:33Z")

</div>

> [@kuba-orlik](#):
>
> Neither makes sense

I disagree. **Liking a post does mean you’ve read it** , so the semantics are clear. In nearly four years of using Discourse, I have categeorically _never_ pressed the like button on a post I have not read.

---

<div class="post-metadata">

### Author: ![kuba-orlik](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuba-orlik/32/318490_2.png) [@kuba-orlik](https://meta.discourse.org/u/kuba-orlik)
#### Post date: [October 30, 2016, 9:02am UTC](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206/7 "2016-10-30T09:02:48Z")

</div>

Yeah, but liking a post also means that you like it. So it enables a scenario when someone presses the like button on a post they don’t like (just to show that they do acknowledge it’s content). This is the semantic discrepancy that we’re trying to solve here.

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [October 30, 2016, 9:05am UTC](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206/8 "2016-10-30T09:05:41Z")

</div>

If they are an employee or on the team, why would that be a problem? It seems to me if you work for the company, “liking” stuff that you’re supposed to

> e.g. here’s an announcement on an exciting new thing we are working on  
> ❤ 12 likes

.. is normal and expected.

I don’t get this big descrepancy.

It’s like you work for the company but you _don’t_ approve of the things the company is doing? Why would you work there, again?

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [October 30, 2016, 9:07am UTC](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206/9 "2016-10-30T09:07:33Z")

</div>

What I am not following here is why make people click “I read it” when we already know they read it.

We track read state on all posts.

I can see some value in adding publicity visible read state on private messages, especially when groups are involved. That is where experimentation should start.

Additionally this solves the problem described here without littering public posts with messy metadata. You send a PM to staff when you make an announcement, and can tell when they all read it.

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [October 30, 2016, 10:03am UTC](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206/10 "2016-10-30T10:03:46Z")

</div>

> [@sam](#):
>
> adding publicity visible read state on private messages

Yes agreed, but

> [@kuba-orlik](#):
>
> When we do some kind of announcement on our forum

this is a public announcement, not a PM.

---

<div class="post-metadata">

### Author: ![kuba-orlik](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuba-orlik/32/318490_2.png) [@kuba-orlik](https://meta.discourse.org/u/kuba-orlik)
#### Post date: [October 30, 2016, 10:38am UTC](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206/11 "2016-10-30T10:38:38Z")

</div>

> [@codinghorror](#):
>
> this is a public announcement, not a PM.

PM doesn’t allow simple read acknowledgement, as well. Could you explain in what way are they different in the context of this conversations? It seems there’s something I’m missing

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [October 30, 2016, 10:39am UTC](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206/12 "2016-10-30T10:39:47Z")

</div>

> [@sam](#):
>
> I can see some value in adding publicity visible read state on private messages

Pretty much ↑ that

---

<div class="post-metadata">

### Author: ![think01](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/think01/32/121463_2.png) [@think01](https://meta.discourse.org/u/think01)
#### Post date: [November 3, 2016, 11:59am UTC](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206/13 "2016-11-03T11:59:08Z")

</div>

We use Discourse to offer technical support to our customers. And we miss the “read ack” button too.

Of course for us the “like” semantic is very different from the “read” one. The usefulness of the “I read it” button is to show the original poster that I’ve read it, without polluting the thread with acknowledge messages, as stated above.

You (@codinghorror and @sam) keep saying Discourse already knows of the read state. But how a user can know of it? I don’t see it anywhere on the GUI. The proposed feature here is about an easy information on who has read the message (in the same manner the like info is currently managed).

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [November 3, 2016, 6:14pm UTC](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206/14 "2016-11-03T18:14:42Z")

</div>

It is the same social awkwardness with “read receipts”, there is a reason people resist this functionality and it is almost never on by default. Also why it is often more appropriate for private messaging vs. public. You can query the database to get the information, though.

---

<div class="post-metadata">

### Author: ![elijah](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/elijah/32/104055_2.png) [@elijah](https://meta.discourse.org/u/elijah)
#### Post date: [November 3, 2016, 10:42pm UTC](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206/15 "2016-11-03T22:42:35Z")

</div>

_Poll ([view on site](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206/15))_

Apparently polls need _at least two_ options. Huh.

---

<div class="post-metadata">

### Author: ![Slowhand](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/slowhand/32/57436_2.png) [@Slowhand](https://meta.discourse.org/u/Slowhand)
#### Post date: [November 4, 2016, 7:08pm UTC](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206/16 "2016-11-04T19:08:47Z")

</div>

Just another example/thought:

Users come to our forum to report issues with our Video On Demand channel. I must compile all these issues into a spreadsheet.

These members are unable to tell if I’ve read their posts or not, so I have been “liking” them to show I’ve added them to the report. Answering each individual post is time-consuming and would require a lot of “Thanks for your report” posts and would make each day’s posts go on and on.

These users do not come into the forums for anything else but this one thread, so are not really as forum-savvy as our regular users. They do not always scroll up to their last post to see what has been written in their absence and tend to just scroll to the bottom to add another post.

I do not necessarily “like” everything I read about the problems users are having, but having some indicator that I’ve read their posts and am reporting on them makes them feel like someone cares.

---

<div class="post-metadata">

### Author: ![jangmi](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jangmi/32/63627_2.png) [@jangmi](https://meta.discourse.org/u/jangmi)
#### Post date: [November 6, 2016, 12:06am UTC](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206/17 "2016-11-06T00:06:56Z")

</div>

Ah, I believe I can understand why some staff might ask for a “read” function.

It really depends on whether you are running a community with close service-customer relationships or a rather solemn online forum where “likes” are seen as rather Facebookish, in a negative way, by the majority of users.

But then, I would also definitely consider writing a short message in the respective topic instead of leaving a reading receipt. That would also make me less of a shrew if I forget about it later _giggle_

---

<div class="post-metadata">

### Author: ![mos\_basik](https://avatars.discourse-cdn.com/v4/letter/m/958977/32.png) [@mos\_basik](https://meta.discourse.org/u/mos_basik)
#### Post date: [November 6, 2016, 4:28am UTC](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206/18 "2016-11-06T04:28:11Z")

</div>

## Caveat

I only heard about Discourse yesterday, and I’m only now exploring the meta forum to see what the interface is like and get an idea of how conversation threads are followed, so forgive me if I ask for or say something blindingly obvious or already implemented.

## Common usage of read receipts

As I recall, read receipts started showing up commonly one to two years ago in messaging apps. And like you say, they caused a splash and users resisted them. But things have changed - almost all popular messaging apps have read receipts as a default:

- Facebook Messenger (#1 most installed messaging app in 2016)
- WhatsApp (#2 as above)
- Line (#4 as above)
- Viber (#5 as above)
- iMessage (iOS devices)
- Google Hangouts
- Kakaotalk (#1 most installed messaging app in South Korea)

(The big exception is WeChat, #3 overall in 2016 and #1 in China. Make of that what you will.)

I’d put forward that people have become used to the concept, as well as the behavior changes necessary in such a system to avoid awkwardness. At least for me, it’s now second nature.

(Incidentally, there is a whole laundry list of browser extensions to provide read receipts to Gmail (with varying effectiveness depending on the recipients’ settings, ofc). Clearly, people find it useful to know if what they’re sending is being read)

All this to say, I don’t think the concept of read receipts in chat apps is as alienating to users now as it was a couple of years ago.

In that vein, I noticed an interesting bit at the very beginning of the [Discourse FAQ page](https://www.discourse.org/faq/), describing Discourse as:

- a mailing list
- a discussion forum
- _a long-form chat room_ [emphasis added]

## Suggestions Already Posted

I think OP [@kuba-orlik] has a good use case, but I don’t think the “I read this” button his title suggests is the way to do it. It smells like the “faster horse” solution instead of the “car” Ford made. The whole point of Discourse is to be the forum of the future.

Your [@codinghorror’s] suggestion is that people use the ❤, and your justifications are:

1. it’s impossible to ❤ the post without having read it, so OP’s need (proof of read) is achieved.
2. given that a likely use case is in an company environment, you should feel more or less positively about all the things your company is doing, and so a semantic conflict should never occur anyway.

I think this misses the point. OP specifically requested a solution that _does not share semantics_ with ❤'ing a post. Even if the semantic overload might not be an issue in a workplace environment (and I think it would), Discourse is flexible software and can be used in a number of environments where that semantic difference is important.

## Example and examination of possibilities

Say you outline some kind of suggestion or spitball an idea in a post. You come back in an hour, or the next day. It’s useful to see who, _specifically_, has read that post. It’s _also_ useful to see who has voluntarily ❤'ed that post. The ratio tells you

- nobody has read it yet (low reads, low ❤s)
- interest is low (high reads, low ❤s)
- interest is high (high reads, high ❤s)

And - very importantly - you can tell if people that are specifically important to that post (say, the people you’ve tagged) have read it yet and whether or not they like it.

This information lets you know whether you should wait longer for more input, mothball the idea for lack of interest, pursue the idea, or call the front-end guy on his cell because everyone loves it but he’s the guy who’ll have to build it and has final say on how realistic the concept is. Or whatever.

You might say this is a poor example because, say, any business where a mission-critical user does not read their notifications daily is doomed and has worse problems to solve than read receipts on forum posts. Fair enough, _if_ Discourse is intended to be business-oriented project first and foremost and all other users are second-class citizens. I don’t get that impression from what I’ve read so far, though. Correct me if I am wrong.

When I set up a Slack server a while back for a community I help organize, I ran into this sort of issue very quickly. For example, Slack has no `/ignore` command to privately mute irritating or harassing members. [Slack’s public response to inquiry about this feature](https://twitter.com/stewart/status/624239660529684481) was (paraphrased) “If you can’t stand someone enough to see their messages, you should probably fire them.” Fair enough; Slack has always been oriented towards the business market. Eventually, for a number of reasons, my community left Slack and went to Discord. Currently, my personal opinion is that Discord could now wipe the floor with Slack, given the features of each, if Discord simply dropped its “gamer” branding and went for a wider audience. But that’s neither here nor there.

## Implementation

You said yourself that the data is already being collected (makes sense given the “view counts” displayed in the list of threads):

> [@codinghorror](#):
>
> Discourse knows exactly what you have read and even how long it was visible on your screen…

I think the elevator pitch of this thread essentially amounts to this:

**Read receipts - _in a forum!_**

and that is something I have _never_ seen before.

It seems like it would be exactly the kind of thing an innovative platform like Discourse would consider including. Surely this could be configurable at the server level by an admin with a toggle, or at the very least made available to the plugin API. But like I said above, I have no idea what is already available or how granular it is.

## Anecdote to wrap up:

Recently I was added to a Facebook chat with over 300 members. This is kind of ludicrous in and of itself - Facebook chat is _not_ the right medium to try and convey information between large groups of people - but I noticed the read receipts were quite useful. They told me which people in that 300 line long member list were actually active and keeping up with the content - _even if they were not actively posting_.

Every time a message was posted, a few profile pictures trickled down to the bottom. Several of those profiles them haven’t made a peep in the channel itself, but I know if I PM one of them, they’ll be able to talk coherently about the discussion. I know they’re _interested_.

* * *

…wew, that was a novel for a first post. I don’t mean to be inflammatory or disrespectful, if that’s how any of this appears.

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [November 6, 2016, 4:34am UTC](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206/19 "2016-11-06T04:34:29Z")

</div>

> [@mos\_basik](#):
>
> and that is something I have never seen before.

If we had a lot of paying customers telling us they needed it, with reasonable real world examples of why they needed it, that would change.

This is currently not the case, nor has it been in the last two years.

---

<div class="post-metadata">

### Author: ![mos\_basik](https://avatars.discourse-cdn.com/v4/letter/m/958977/32.png) [@mos\_basik](https://meta.discourse.org/u/mos_basik)
#### Post date: [November 6, 2016, 4:39am UTC](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206/20 "2016-11-06T04:39:29Z")

</div>

Fair enough.

> [@codinghorror](#):
>
> You can query the database to get the information, though.

I saw this earlier. Is this you saying “it’s possible for you to write this functionality yourself with a plugin”? Because honestly, even that would tickle me.

[Next page](https://meta.discourse.org/t/i-read-it-button-alongside-i-like-it-button/52206.md?page=2)
