┏━━━┓┏┓━┏┓┏━━━┓┏━━┓┏━━━━┓┏━━┓┏━┓━┏┓━━━━┏━━━┓┏━━━┓┏┓━┏┓┏━━━┓┏━━━┓┏┓━━━ ┃┏━┓┃┃┃━┃┃┃┏━┓┃┗┫┣┛┃┏┓┏┓┃┗┫┣┛┃┃┗┓┃┃━━━━┃┏━┓┃┃┏━┓┃┃┃━┃┃┃┏━┓┃┃┏━┓┃┃┃━━━ ┃┃━┗┛┃┗━┛┃┃┃━┃┃━┃┃━┗┛┃┃┗┛━┃┃━┃┏┓┗┛┃━━━━┃┗━━┓┃┃━┗┛┃┗━┛┃┃┃━┃┃┃┃━┃┃┃┃━━━ ┃┃━┏┓┃┏━┓┃┃┗━┛┃━┃┃━━━┃┃━━━┃┃━┃┃┗┓┃┃━━━━┗━━┓┃┃┃━┏┓┃┏━┓┃┃┃━┃┃┃┃━┃┃┃┃━┏┓ ┃┗━┛┃┃┃━┃┃┃┏━┓┃┏┫┣┓━┏┛┗┓━┏┫┣┓┃┃━┃┃┃━━━━┃┗━┛┃┃┗━┛┃┃┃━┃┃┃┗━┛┃┃┗━┛┃┃┗━┛┃ ┗━━━┛┗┛━┗┛┗┛━┗┛┗━━┛━┗━━┛━┗━━┛┗┛━┗━┛━━━━┗━━━┛┗━━━┛┗┛━┗┛┗━━━┛┗━━━┛┗━━━┛
┏━━━┓┏┓━┏┓┏━━━┓┏━━┓┏━━━━┓┏━━┓┏━┓━┏┓ ┃┏━┓┃┃┃━┃┃┃┏━┓┃┗┫┣┛┃┏┓┏┓┃┗┫┣┛┃┃┗┓┃┃ ┃┃━┗┛┃┗━┛┃┃┃━┃┃━┃┃━┗┛┃┃┗┛━┃┃━┃┏┓┗┛┃ ┃┃━┏┓┃┏━┓┃┃┗━┛┃━┃┃━━━┃┃━━━┃┃━┃┃┗┓┃┃ ┃┗━┛┃┃┃━┃┃┃┏━┓┃┏┫┣┓━┏┛┗┓━┏┫┣┓┃┃━┃┃┃ ┗━━━┛┗┛━┗┛┗┛━┗┛┗━━┛━┗━━┛━┗━━┛┗┛━┗━┛

Chaitin School

Pol.is Hack Night

Tue, 19 Apr 2022 18:00

Pol.is is a very exciting thing in digital democracy.

Polis is a web app that facilitates large group discussions/opinions. Or according to Polis: Polis is a real-time system for gathering, analyzing and understanding what large groups of people think in their own words [..] You can see a video about it here (feel free to not read the title).

The plan for this event:

*Let’s meet and try to improve it. Fix a bug or implement a small feature!*

Here’s is the Polis repository: github.com/compdemocracy/polis. There are currently 255 issues open. It would be a good idea to scan through these before coming to the event to see if you can find something more specific to work on.


  1. This event is for people who feel comfortable working with any of JavaScript / React.js / Node.js / Clojure / Docker as these are the languages/libraries that polis is built with.
  2. We are not familiar with the polis source code! We’ll be figuring it out as we go along with you.
  3. We'll provide snacks and drinks!
  4. Attendees are expected to come with their own laptops. We’ll provide AC electricity.

Join online

If you’re interested in contributing but not able to attend, we will also be online in our Discord at #polis-hack-night channel. Hope to see some people there as well!

Selection of issues

Resources & Ideas by @patcon_

  • Unofficial Polis User Group (PUG) discord → http://link.g0v.network/pug-discord
  • Template "wrapper" app that supports a certain style of Polis use (news website, etc) which can wrap embedded polis convos in another layer of authentication, or screening questions. People currently need to build that themselves at great cost. Eg https://www.harrogatedistrictconsensus.org/
  • API proxy to make the API more friendly until the actually API is cleaned up. Code spike: https://github.com/patcon/polis-api-proxy
  • Collectively-run friendly fork that auto-deploys to a useable server. The upstream main repo merges PRs and moves way too slow for many ppl, and it's a long running frustration. Might be interesting to run a "low assurance" fork at polis.g0v.network or something (that domain is collectively managed at http://link.g0v.network/domains). We can run the fork from this repo or any other: https://github.com/g0v-network/polis
  • Support infra to use Polis within Twitter Spaces: http://link.g0v.network/polis-twitter
  • Support infra to run polis convos IRL. https://github.com/patcon/polis-irl-simulator (proof-of-concept was trying to simulate moving around room with moving thumbs around a Collab canvas. Idea was the "snapshot" locations in room as votes of specific statements, then populate a polis convo on behalf of those ppl. The "thumb on screen" simulation is potentially useful for low-attention use of polis (e.g., participating in a live presentation from your seat), but a more complex IRL version might involve using a phone app to track proximity to specific Bluetooth signals representing agree/disagree/pass, and having that info be used to puppet a polis convo on behalf of present participants in a room :)

Thank you @patcon_ for the above!

Source code

Even though we’re unfamiliar with the polis repository, after a little bit of research we have learned:

The whole polis service is composed of:

  • server/, written in Node.js, is the main server app
  • math/, written in Clojure, is the statistical analysis part
  • client-participation/, written in Javascript, compile to static assets, is the client code for end-users
  • client-admin/, written in Javascript, compile to static assets, is the client code for administrators
  • client-report/, written in Node.js, is the code for detailed analytics reports

Polis architecture:



We’ll meet at Newspeak House in Shoreditch.