About
About publicvoting.org
An open-source platform for timed deliberation and verifiable institutional voting — engineered for real clubs, boards, unions, co-ops, and public bodies.
Provenance
publicvoting.org was commissioned by publicgovernent.org as a public-interest brief for trustworthy institutional voting infrastructure.
The publicgovernent.org site is launching separately and may not be publicly available yet. Commissioning and product status for PublicVoting are described here and in the open-source repositories.
The software was designed and built by CPT Software, who continue engineering across the PublicVoting open-source repositories and can operate hosted environments for organisations that lease an instance.
- publicgovernent.org — commissioning / public-interest mandate (site launching separately)
- CPT Software — product engineering and hosted operations
- PublicVoting (GitHub) — open-source code and protocol
- Your institution — membership, decisions, tallier custody
Open source
Application code is licensed under Apache License 2.0. Trademarks (including the publicvoting name and logos) are separate — see project trademark policy. Self-hosters may brand their voting system via product features without acquiring the PublicVoting word mark.
Repositories
- publicvoting.org — design, governance, this website
- publicvoting-protocol — OpenAPI, packs, crypto suite
- publicvoting-api — Go API & deploy
- publicvoting-portal — officer console
- publicvoting-mobile — voter device stack
Technology
Technical stack
Pinned choices from project ADRs — designed for auditability and long-lived institutional use.
| Protocol | OpenAPI 3.1, procedure pack JSON Schema, SemVer protocol VERSION, Mode B suite publicvoting-modeb-v1 with published test vectors |
|---|---|
| API / backend | Go, Postgres (memory store for tests), append-only hash-chained log, Prometheus metrics, Docker Compose deploy profiles |
| Officer portal | React, Vite, TypeScript — membership, packs, decisions, audit; no ballot cast |
| Voter device | Dart Mode B crypto + API client + cast CLI; Flutter UI planned for multi-system wallet UX |
| Cryptography | Ed25519 device auth; X25519 hybrid KEM + HKDF-SHA256 + AES-256-GCM ballot seal; Shamir threshold tallier shares; Argon2id recovery verifiers |
| Integrity substrate | Append-only public log (not a general-purpose public blockchain); off-log blobs addressed by hash |
| Configurability | Procedure packs (club → high assurance), brand themes (light/dark), feature gates — never overriding cast integrity |
| License | Apache-2.0 for code; hosted service terms separate |
| This website | Static HTML/CSS/JS in the meta repository; Civic Teal product brand tokens |