Distributed polls on your personal website
Published on under the IndieWeb category.Toggle Memex mode

In the Bonus Homebrew Website Club meeting last weekend, I was reminded of the IndieWeb social polls idea I had a while back. I cannot quite remember what reminded me of the idea but I mentioned it in the meeting anyway. My idea was to use webmentions to support social polling. By using Webmentions, I could accept votes to a poll from individual personal websites. My site, or perhaps a third-party service I create, would then aggregate those polls and produce a clean report showing the number and percentage of votes each option in the poll had earned.
I am fascinated by this idea because polling is one aspect of social networks the IndieWeb hasn't explored to a great extent. I have used Instagram's polling feature dozens of times (although I admit I am quite partial to the plain text question-answer box, too). The workflow I have in mind is:
- Create a poll on my site. That poll contains an arbitrary body of text (most likely phrased as a question) and a list of options identified by their name.
- Allow Webmentions to be sent to the page on my site.
- Have a service that: (i) validates all Webmentions; (ii) produces an up-to-date score of all of the votes for each option.
The main considerations that come to mind are:
- How do we preserve the integrity of votes? The service that handles polling should ensure that if someone has already sent a vote and sends another one for the same option, the second vote is not saved. If someone sends a vote for a different option to the one for which they have already voted, their option should be changed to reflect their new preference.
- How do we get the poll numbers on someone's personal website? It feels arduous and redundant to ask every site owner who wants to run a poll to implement logic to tally votes and calculate the percentage of the vote for each option. I think a JavaScript helper function could be in order, or perhaps even some kind of embed should a third-party service implement this.
While I like the idea of a third-party service offering this logic, I am more interested in seeing how I could do it on my website.
An example prompt would be:
"What is your favourite microformat?"
Whose options would be:
- h-entry
- h-card
- h-feed
- Other
There is no need for there to be a limit to options. Because I own my site, I should be able to specify as many options to a poll as possible.
People could then send a Webmention that only contains their answer to the question. If an answer is provided that is not provided in the list of options, the vote would not be counted. If I sent a Webmention that said "h-entry" then I would have voted for "h-entry."
There would need to be a mechanism to support the end of a poll, too. I could specify this on my site and say "At [specified date], this poll will be terminated and no more votes will be counted." Perhaps there is a way to stop accepting webmentions on a page? If there is not -- as such a method is not presently coming to my mind -- then there would need to be some logic to ensure votes cannot be accepted forever. This is important for polls that are time-bound, where letting the poll continue for an arbitrary amount of time would skew the results.
I am interested in this idea both as an exploration of the social web but also so I can start asking poll questions on my own site. I don't have any in mind right now but I would love to be able to ask one and get some vote responses.
Tagged in polls.
Responses
Comment on this post
Respond to this post by sending a Webmention.
Have a comment? Email me at readers@jamesg.blog.