// the find
compdemocracy/polis
:milky_way: Open Source AI for large scale open ended feedback
Polis is a large-scale opinion mapping platform that uses PCA to cluster participants around statements they agree/disagree with, surfacing areas of consensus and division in a group. It's been used in real civic processes (Taiwan's vTaiwan, UK CDEI) and is genuinely battle-tested at scale. The target user is a civic tech org, researcher, or government body running deliberative processes — not a developer building a survey tool.
The math behind it is serious: PCA-based opinion clustering is the right tool for finding consensus across high-dimensional vote spaces, and there's a published methods paper backing it. The multi-service Docker Compose setup (server, math, client-admin, client-participation-alpha, OIDC simulator, MinIO, DynamoDB) is well-organized and the Makefile makes common ops straightforward. The new participation client is being rewritten in Astro/TypeScript, which is a real improvement over the legacy JS. E2E test coverage via Cypress is present and wired into CI.
The stack is a polyglot maintenance burden: Node.js server, Clojure math service, Python ML (delphi), two separate JS frontends at different lifecycle stages, plus CDK infra — that's five languages for one product. The 'alpha' participation client has been 'alpha' long enough that it's in the main repo with its own Dockerfile; the migration path from legacy client is unclear. Self-hosting is non-trivial: the SSL cert setup alone requires mkcert, browser restart, and manual key generation before you can even test locally. The AWS deployment path (EC2 + CodeDeploy + CDK) is opinionated and underdocumented — if you're not already on AWS or comfortable with CDK, you're mostly on your own.