# Plugin: Feature voting separated from Likes

**URL:** https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772
**Category:** Feature
**Tags:** rfc, spec
**Created:** [January 30, 2016, 3:34pm UTC](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772 "2016-01-30T15:34:45Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![erlend\_sh](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/erlend_sh/32/119475_2.png) [@erlend\_sh](https://meta.discourse.org/u/erlend_sh)
#### Post date: [January 30, 2016, 3:34pm UTC](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772/1 "2016-01-30T15:34:45Z")

</div>

Continuing the discussion from [Feature to allow uservoice/getsatisfaction suggestions and voting](https://meta.discourse.org/t/feature-to-allow-uservoice-getsatisfaction-suggestions-and-voting/19812):

“Post likes” and “Feature likes” don’t overlap well. If a company makes a popular Android app, the first person to type up a 70-character long “Make an iOS port” topic could quickly garner 1000 Likes. In this case the number of likes does not accurately reflect the quality of the post nor the user’s community participation. The flip side of this is that [users might reserve their likes](https://meta.discourse.org/t/is-liking-a-post-too-intimidating/37695).

The motivation behind this plugin is to separate “votes on a feature” from “liking a post”.

### Votes as an archetype of Likes

Votes could piggyback the Like design, but the two would be treated as completely separate entities, so that votes on features don’t count towards Trust Levels and such. So while the average post can have “Likes”, a special category could allow “Votes" as an _additional metric_, applied to the topic as a whole.

**Topic view:**

 ![](https://global.discourse-cdn.com/meta/original/3X/f/4/f41267d3ef02b7b6fca70d8e67767b4d41e5e663.png)

**Topic view, scrolled down:**

 ![](https://global.discourse-cdn.com/meta/original/3X/8/b/8b09b1ef678a93d279ef0d9ad962043427082f20.png)

- Votes are displayed _above_ the topic creator’s post, distinguishing the title as a separate thing that you can vote on. **You’re voting on the _proposal_, not the person.**

- Below, the forum works as normal. OP’s post can be Liked, just like everyone else’s.

- Votes are per-topic only, not per-post as the way Likes work.

- Votes should be revokable at any point in time

- Votes would be anonymous to everyone except admins (configurable)

- The plugin would be activated per-category, just like Solved.

- Individual topics could still be unflagged as a feature request, to remove the votes counter and use it purely as a discussion (alternative workaround is to have a sub-category for feature discussions).

- A user should only be allowed to have 10 _active_ Votes (configurable)

- Closing a topic would disallow further voting and return active votes (while retaining vote count).

As a result of such a plugin, the average like count on the first post in a feature request would almost certainly take a hit, but I don’t see that as a bad thing.

### Stretch Goals

#### Show vote count in topic list

Similar to this:

 ![](https://global.discourse-cdn.com/meta/original/3X/b/d/bde17cfbd44f56d307606f09daf357118becd3c6.png)

#### “Planned” & “Done” buttons integrated with tags

The plugin would add “planned” and “done” buttons for moderators to click on, which would do a combination of actions like "close topic + apply ‘done’ tag + return active votes.

#### Votes by unregistered users

- The Votes button should be viewable _and_ clickable by unregistered users (want to vote without registration? just attach your email to your vote and we’ll keep a staged account for you, no fuss)

 ![](https://global.discourse-cdn.com/meta/original/3X/2/e/2e06599ba5209d85b71c52ad602249324f4f638e.png)

**Status notifications**

When the status of a feature is changed to “Planned” or “Done”, an email notification will be sent out to all voters.

**Super Votes**

Users have 3 “Super Votes” as a way to differentiate between popular wishlist items and MUST-HAVEs. Both types of votes would count towards the same grand total of “Votes” (so technically the Super Vote is just an ordinary Vote with a special flag attached) but say;

If one feature has 50 Votes and 3 Super Votes, while another feature has 10 votes and 6 Super Votes, that’s interesting data.

Furthermore, only fully registered users (perhaps even limited to a TL or custom group like Customers, but this could be tweaked per community) get Super Votes, so it could work as an added incentive to participate as a real member of the community.

---

<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: [January 30, 2016, 11:41pm UTC](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772/2 "2016-01-30T23:41:13Z")

</div>

Isn’t this already what New Relic built for their site and is active right now..?

Can’t say I’m a fan of the approach, personally, but as a plugin, sure.

Also you’d need to define mobile behaviors; a spec without mobile is a non-starter.

---

<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: [January 30, 2016, 11:44pm UTC](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772/3 "2016-01-30T23:44:54Z")

</div>

> [@codinghorror](#):
>
> Isn’t this already what New Relic built for their site and is active right now..?

Nope, very different to newrelic. They have a Q&A type plugin, everything can be up and downvoted, no limits on voting.

I am a huge fan of forcing users to pick the 3 most important things for them. There is though tons of mechanics around that very simple concept.

I wonder if “Limit likes on OPs in a particular category” is a good enough first pass at this without needing tons of work. You miss out on “supervote” but still, very easy first pass.

---

<div class="post-metadata">

### Author: ![tgxworld](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tgxworld/32/106117_2.png) [@tgxworld](https://meta.discourse.org/u/tgxworld)
#### Post date: [January 31, 2016, 12:21am UTC](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772/4 "2016-01-31T00:21:25Z")

</div>

> [@erlend\_sh](#):
>
> distinguishing the title as a separate thing that you can vote on. You’re voting on the proposal, not the person.

Some clarifications here :slight_smile: I was wondering why voting on the title would equate to voting on the proposal when OP’s post === Proposal in most cases. I personally don’t think the title is sufficient to represent a good proposal… it is usually a combination of the title and the use case described in OP’s post. :grin:

---

<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: [January 31, 2016, 12:54am UTC](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772/5 "2016-01-31T00:54:17Z")

</div>

That’s just a visual hint, it does not mean the only thing people are voting on is literally the title :wink:

---

<div class="post-metadata">

### Author: ![jomaxro](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jomaxro/32/126216_2.png) [@jomaxro](https://meta.discourse.org/u/jomaxro)
#### Post date: [January 31, 2016, 1:20am UTC](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772/6 "2016-01-31T01:20:32Z")

</div>

> [@erlend\_sh](#):
>
> - Votes would be anonymous to everyone except admins (configurable)

I know this says configurable, just want to confirm that admins means staff (admins + mods), not just admins.

---

<div class="post-metadata">

### Author: ![tgxworld](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tgxworld/32/106117_2.png) [@tgxworld](https://meta.discourse.org/u/tgxworld)
#### Post date: [January 31, 2016, 1:48am UTC](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772/7 "2016-01-31T01:48:54Z")

</div>

Hmm I know they are not just voting on the title but I was wondering why placing the call to action button at the title would represent a vote on the proposal. :smile:

 ![](https://global.discourse-cdn.com/meta/original/3X/3/7/37e89b4d0509fffb0acda2ce4f9adef93f1b247c.png)

---

<div class="post-metadata">

### Author: ![cpradio](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cpradio/32/4970_2.png) [@cpradio](https://meta.discourse.org/u/cpradio)
#### Post date: [January 31, 2016, 11:34am UTC](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772/8 "2016-01-31T11:34:59Z")

</div>

Here is a screenshot of UserVoice

 ![](https://global.discourse-cdn.com/meta/original/3X/d/6/d68c93d41ba2aa488155302f666b709d05e2892a.png)

Then you have Reddit (which is both up/down voting

 ![](https://global.discourse-cdn.com/meta/original/3X/d/4/d4ecca2038313d4ed6848578d1383d3d56537d86.png)

Shifting the title over for the votes to be located seems far easier than shifting the title and first post (to match UserVoice), it also seems better visually than shifting the first post inwards or trying to put the vote box inside the first post.

I think if you could shrink down that box to be the size of an avatar (by width), it would make the visual a lot better. However, that may mean you might have to sacrifice the word Vote for an icon (especially in foreign languages).

---

<div class="post-metadata">

### Author: ![erlend\_sh](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/erlend_sh/32/119475_2.png) [@erlend\_sh](https://meta.discourse.org/u/erlend_sh)
#### Post date: [January 31, 2016, 11:35am UTC](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772/9 "2016-01-31T11:35:51Z")

</div>

> [@tgxworld](#):
>
> I was wondering why placing the call to action button at the title would represent a vote on the proposal.

Because it’s up there with the title and category, which are global elements as far as the topic is concerned. If you move around in the topic, they’ll come with you (sticky header), because they’re essential to the context of the entire discussion.

By default it’s also neatly separated from the post body & author by an `<hr>`, which I always liked, because while the body of your post is pretty much yours to do as you like with, trusted users reserve the right to change your category and even your title.

And lastly and maybe most importantly, what @cpradio just ninja’d me with. It’s in line with the industry standard of feature voting, UserVoice.

---

<div class="post-metadata">

### Author: ![joebuhlig](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/joebuhlig/32/193054_2.png) [@joebuhlig](https://meta.discourse.org/u/joebuhlig)
#### Post date: [January 31, 2016, 12:22pm UTC](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772/10 "2016-01-31T12:22:22Z")

</div>

I couldn’t find the answer to this above so I’ll pose the question. What happens if I reopen a topic? Or is that not allowed? I don’t think you can reclaim the active votes from a user since they’ll likely already be placed elsewhere. Maybe allow them to go over the limit since it would have to be a user with authority who caused it by reopening the topic?

---

<div class="post-metadata">

### Author: ![erlend\_sh](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/erlend_sh/32/119475_2.png) [@erlend\_sh](https://meta.discourse.org/u/erlend_sh)
#### Post date: [January 31, 2016, 12:29pm UTC](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772/11 "2016-01-31T12:29:40Z")

</div>

Good question! I think what should happen is:

- Say you have 0 active votes left.
- A moderator reopens an idea you voted on
- Now you have -1 active vote left.

Meaning, to vote on something else, you’ll now have to withdraw 2 active votes. So technically it’s possible to exceed your limit, but it can’t be used to your advantage.

[quote=“jomaxro, post:6, topic:38772”]  
I know this says configurable, just want to confirm that admins means staff (admins + mods), not just admins.  
[/quote]Admins means admins, but configurable means you could expand it to staff. Many big communities will appoint moderators that aren’t actually hired employees of the company. Best to default to the privacy setting of least surprise and let people tweak it from there.

(Though if it turns out it’s technically easier for all staff users to have access, I have no objection to that).

---

<div class="post-metadata">

### Author: ![jomaxro](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jomaxro/32/126216_2.png) [@jomaxro](https://meta.discourse.org/u/jomaxro)
#### Post date: [January 31, 2016, 1:07pm UTC](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772/12 "2016-01-31T13:07:47Z")

</div>

> [@erlend\_sh](#):
>
> Many big communities will appoint moderators that aren’t actually hired employees of the company. Best to default to the privacy setting of least surprise and let people tweak it from there.

No argument there. I just think it is important to ensure that the permission set is expandable.

---

<div class="post-metadata">

### Author: ![joebuhlig](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/joebuhlig/32/193054_2.png) [@joebuhlig](https://meta.discourse.org/u/joebuhlig)
#### Post date: [February 1, 2016, 10:59pm UTC](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772/13 "2016-02-01T22:59:05Z")

</div>

Is there an archetype of likes currently or is that an add that this plugin would have to handle?

---

<div class="post-metadata">

### Author: ![erlend\_sh](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/erlend_sh/32/119475_2.png) [@erlend\_sh](https://meta.discourse.org/u/erlend_sh)
#### Post date: [February 2, 2016, 12:57pm UTC](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772/14 "2016-02-02T12:57:40Z")

</div>

No, there’s no concept of the archetype in existence yet. Whether it’d be up to the plugin to do all of the heavy lifting remains to be seen though. It’s not unusual that sensible extensions of the core make it in as PRs.

[quote=“sam, post:3, topic:38772”]  
I wonder if “Limit likes on OPs in a particular category” is a good enough first pass at this without needing tons of work. You miss out on “supervote” but still, very easy first pass.  
[/quote]I’m not so sure. My gut says this works best as an all-or-nothing proposition. “A Like is a Like, except in the #Contribute > Feature category; there it’s something slightly different” – that’s confusing, and it dilutes the meaning of a Like as an acknowledgement of good content.

---

<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: [February 2, 2016, 12:59pm UTC](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772/15 "2016-02-02T12:59:14Z")

</div>

You could simply rename stuff for first post

Both liking and voting on a feature is equally confusing.

---

<div class="post-metadata">

### Author: ![joebuhlig](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/joebuhlig/32/193054_2.png) [@joebuhlig](https://meta.discourse.org/u/joebuhlig)
#### Post date: [February 2, 2016, 4:45pm UTC](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772/16 "2016-02-02T16:45:51Z")

</div>

> [@sam](#):
>
> You could simply rename stuff for first post
> 
> Both liking and voting on a feature is equally confusing.

I wondered about that. It would be a lot faster and easier to pull the like button off the first post and reuse it at the top for votes. Then you’d just need to add a custom field on the user that holds the number of available votes, but can we do custom fields on a user-topic relationship? That would make it possible to know which topics they’ve voted for. Maybe there’s an easier and better way.

This doesn’t help with “super votes” but I can’t say I’m a big fan of that anyway.

---

<div class="post-metadata">

### Author: ![alefattorini](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/alefattorini/32/119928_2.png) [@alefattorini](https://meta.discourse.org/u/alefattorini)
#### Post date: [February 3, 2016, 8:40am UTC](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772/17 "2016-02-03T08:40:21Z")

</div>

As you already said this would be a killer-plugin for every community product based  
I have the same problem as matter of fact I don’t use likes to sort my features but the top view (filtered by category), which is more truthful but even that does not accurately reflect the quality of the proposal.  
Othewrise, how can you consider the features weight without this plugin?

---

<div class="post-metadata">

### Author: ![joebuhlig](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/joebuhlig/32/193054_2.png) [@joebuhlig](https://meta.discourse.org/u/joebuhlig)
#### Post date: [February 15, 2016, 4:28pm UTC](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772/18 "2016-02-15T16:28:24Z")

</div>

@erlend_sh Are there any outstanding questions here from your view? I’m curious about this for a future community and may be able to find time to help out with it.

---

<div class="post-metadata">

### Author: ![erlend\_sh](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/erlend_sh/32/119475_2.png) [@erlend\_sh](https://meta.discourse.org/u/erlend_sh)
#### Post date: [February 15, 2016, 8:35pm UTC](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772/19 "2016-02-15T20:35:03Z")

</div>

Not really. I should just reiterate the fact that I’ve no clue how feasible it is to create “an archetype of Likes” so that you can piggyback on its existing functionality. For that you’ll have to dig into the code and start asking questions when you hit roadblocks.

---

<div class="post-metadata">

### Author: ![joebuhlig](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/joebuhlig/32/193054_2.png) [@joebuhlig](https://meta.discourse.org/u/joebuhlig)
#### Post date: [February 15, 2016, 9:03pm UTC](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772/20 "2016-02-15T21:03:48Z")

</div>

That’s been one of my bigger concerns with it. I wondered about hijacking the like count on the original post like Sam mentioned.

> [@sam](#):
>
> You could simply rename stuff for first post

I have a feeling that would be a better approach at the onset. I couldn’t find this in the source so I assume it doesn’t exist, but is there a custom field option available on the Topic-User relationship? We could use that to hold a flag for the user to show whether they’ve voted or not.

Do you have plans to start a GitHub repo for this?

[Next page](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772.md?page=2)
