Skip to content


Pseudovote is a voting machine implementing the simplest process of casting pseudonymous votes on a public bulletin board. Voting takes place in three steps:

  1. Deliver dedicated pseudonyms to a list of e-mails;
  2. Collect the votes on a public bulletin board;
  3. Count the result in a reasonably secret ballot.

Minimalist setting for public bulletin board voting is reinforced by using common tools like e-mail and pseudonyms, but also immediate auditability of submitting your vote to a real time bulletin board, where you can literally see other votes coming in.

Pseudovote moves in opposite direction to complicated voting systems with state of art cryptography, aiming instead to make the process understandable for every participant. Even the web service in its current form is meant as a prototype for experimental and educational use, which should be replaced with plain text append only bulletin board for more demanding use cases.

In real life

Preliminary forms of Pseudovote have been used at:

Running your own

1. Download the source code

git clone
cd pseudovote
pip install -r requirements.txt

2. Set up the database

sudo apt install postgresql
sudo -u postgres psql < database.sql

3. Run the bulletin board

uvicorn pseudovote.service:app

The web service should be running at localhost:8000.

If you prefer running a container, you get the same result by executing docker compose up after downloading the source code.