Skip to main content

A walkthrough of the real application

One council meeting, from the roster to the certificate.

A district council meeting in 15 screens: the credentials chair’s week before it, the member’s phone during it, and the record that is left the morning after. Every image below is captured from the running application, not drawn.

US$199 per year, per district. No per-voter fees.

What this replaces

A district council meeting today runs on Eventbrite for registration, a spreadsheet for credentials, and ElectionBuddy for the vote — three systems that have no idea the other two exist, reconciled by hand by a volunteer on the weekend before. Red Vote is those three jobs in one record, and it is the record that makes the result defensible when somebody asks.

Scroll sideways to see the whole screen.

Act one

The week before

The credentials chair has to arrive at the meeting with a defensible list of who may vote and how many votes each of them carries. This is the part that costs a volunteer a weekend.

Three meetings, three states

Council and executive meetings on one list, each with the current root of its own audit chain beside it. One is taking registrations, one is live, one is closed and certified.

The Meetings list for District 61. Three district council meetings are stacked in date order: Annual District Council 2027, tagged Registration open; Spring 2026 District Council, tagged Live now; and Fall 2025 District Council, tagged Closed. Each row carries its date and time, eight clubs, fifteen registered members, and a short hash-chain fingerprint on the right.

The DCL, imported

Drop in the District Council Members List exported from Club Central. Clubs, members, officer positions and DEC membership are extracted, and a diff against the previous import is shown before anything is committed. Accented names survive the trip through Excel.

The Import the roster screen. Three numbered steps run across the top — source, diff, resolve — and a large drop zone below reads Drop the DCL CSV here, noting that the file comes from Club Central under District Council Members List. A panel beside it, headed Source manifest, is waiting to report the file's record counts and signing details once a file arrives.

Who carries how many votes

Two votes per club in good standing, carried by the president and the VP Education; a sole representative carries both; DEC votes are counted separately. The engine proposes, the operator can override, and every override is recorded with the reason typed against it.

The Vote allocations table. Five tiles across the top read fifteen club votes seated, two DEC votes seated, six sole-rep allocations, one operator override, and nothing over the cap. Below them a row per member — Grace Adeyemi for Cornwall Confident Voices, Chantal Bélanger for Gatineau Éloquence, Robert MacIntyre for Kingston Orators with a separate DEC row — each showing the automatic allocation, any override, the final count, and a Sole Rep flag. Margaret Chen's row carries an override of two, printed in a different colour from the automatic figures.

Are we legal to proceed?

The quorum arithmetic is shown rather than asserted: the base, the threshold, the count, and the rule they come from. Quorum gets challenged at real meetings, and a chair who can point at the calculation ends the challenge.

A page headed Are we legal to proceed? A dark panel gives the registered seat count as fifteen of twelve, marked Quorum reached, with the working printed underneath: six clubs in good standing times two votes is twelve seated votes, and a one-third threshold makes four. A second panel tracks live presence, at none of twelve votes online right now and marked below threshold, labelled as being for re-certification only in case someone calls for it mid-meeting.

Act two

What a member sees

One link, addressed to them, with no account and no password behind it. The same link seen from the operator's side is the registration board.

One link, no account

The member gets a link addressed to them. They say whether they can attend, confirm where their voting link should go, and can add a second language — registering and voting in French is a real option for a district that needs it. No password, no app, no help desk.

The registration page as a member opens it on a phone, with an English and Français toggle at the top. It greets Priya by name and explains that her club has chosen her to vote at the Annual District Council 2027 on Thursday, June 10, and that her voting form goes out by email once registration closes, with the same link sent again shortly before the meeting starts. She is asked whether she is able to attend — Yes, I can attend or No, I cannot attend — either way, because her club needs to know whether its seat is covered. Her email address is filled in already, under a note that the voting link goes there and should be an address she can open on the day. She is then offered a second language for her messages, with Français the one choice listed. The button reads Confirm my attendance, and beneath it a line repeats that her voting link follows once registration closes and again shortly before the meeting. At the foot, the credentials chair is named — Alice Beaumont — with an address to write to and a promise of a reply within a day.

Who has answered

The operator's side of the same link: two seats per club, who is ready, who is still pending, and who has no email at all. A member without an address is registered by the operator and handed their link another way — reforming districts have those members.

The Registrations page. Four counters read sixteen invited, fifteen attending, none declined, one no reply, beside a button offering to generate the one missing link. Below them a card per club — Bytown Speakers, Rideau Communicators, Gatineau Éloquence, Capital Toastmasters, Kingston Orators, Thousand Islands Speakers, Cornwall Confident Voices, Brockville Bridgebuilders — each showing its two seats with the president and VP Education named and a presence chip reading Offline. Jocelyne Tremblay appears twice, as president of Bytown Speakers and as VP Education of Capital Toastmasters, which is the multi-club officer the split-vote screen later shows. One seat, Yusuf Karim at Brockville Bridgebuilders, is highlighted as No reply.

Seen enough to want a conversation?

Act three

Meeting day

There is no button that starts the meeting. A meeting is live when its start time arrives, which removes the most common way a live vote goes wrong: nobody forgot to press anything.

The operator's control surface

Ballots are built in advance, and the operator opens them one at a time as the chair calls each vote. Draft, open and closed sit in one list, and a test ballot can be run alongside the real ones without ever touching the audit chain.

The Ballots page during a live meeting. Establish Quorum is marked closed and offers to show its results. Approve the 2026-2027 District Budget is marked open, with a Close voting button. Election — Club Growth Director is still a draft. Controls above the list offer to extract motions from the agenda, add a test ballot, add standard ballots, or import election ballots.

The screen a voter actually uses

One card: the meeting, the motion, how many votes they hold, and three buttons. It is the most-used surface in the product and deliberately the plainest thing in it.

A voter's phone during the meeting. A card marked LIVE names the Spring 2026 District Council and the voter, Priya Raghunathan, with a line reading Updated just now beside a Check now control, then the motion — Approve the 2026-2027 District Budget — tagged Anonymous vote, with the motion's full wording underneath. A band reads two votes to cast, two club votes, above three full-width buttons: Yes, No, Abstain.

A member who represents more than one club

Someone carrying two club votes — one at each of two clubs — and a DEC vote may hold different instructions from each of them. Here they can split them. The incumbent tool chain forces one answer for all of a member's votes, which is not what the clubs decided.

The same ballot open for Jocelyne Tremblay, who holds three votes. Under her name a line reads Updated just now, beside a Check now control. A highlighted note tells her she represents two clubs and holds one DEC vote on this motion, and may cast a different vote for each. The tally band reads three votes to cast — two club votes plus one DEC vote — and below the Yes, No and Abstain buttons is a link reading Split my vote across allocations.

The operator's view while a vote is open

Pre-flight checks, the quorum panel and the last few links of the hash chain, on one screen. The figures keep up with the meeting on their own — nobody has to reload the page to see where the vote has got to.

The Live meeting console, headed Live meeting above a line reading No voters seen in the last ninety seconds — voter pages checking in on this meeting, with the console itself not counted. Three phase tabs — pre-meeting, live meeting, post-meeting — with the live one selected, and the last three links of the hash chain shown to the right, the newest highlighted. A card for the open ballot, Approve the 2026-2027 District Budget, is marked Voting open and tracks participation at eleven of seventeen votes cast, sixty-five per cent, above a Close voting button. A pre-flight panel reads five of six ready: roster imported with sixteen members, fifteen of sixteen voters registered, allocations run at fifteen club votes, fifteen tokens generated, quorum achievable at fifteen of the four needed, and pre-meeting links not yet sent. Below it the quorum panel repeats the registered count of fifteen against a threshold of twelve, quorum reached.

A read-only link for a scrutineer

In a contested election a candidate names a scrutineer. They get a labelled, revocable link that works until seven days after the meeting closes. No account, and no way to change anything.

The Observers page. A form mints a link with a label for the operator's own reference; the placeholder suggests Scrutineer for Alice Nguyen. One active link is already listed, labelled Scrutineer — Club Growth Director race, with the time it was created, a copy button and a Revoke action. A note below warns that observer links are bearer tokens: anyone holding one can view the meeting, so they should be sent over a trusted channel and revoked if they leak.

What the scrutineer sees

The same meeting, live, with no controls anywhere on the page. Ballot states and counts follow the disclosure mode the operator set for each ballot.

The observer's own view, headed Red Vote with an Observer badge, and on the right the label the link was issued under — Scrutineer — Club Growth Director, truncated — beside an English and Français toggle with English selected. A card names the Spring 2026 District Council, District Council on June 11, 2026 at Ottawa City Hall, 110 Laurier Ave W, with a chip reading Status: In session and a second reading Quorum met. Under the heading Ballots are the three ballots with their states: Establish Quorum, ticked, marked Closed and Nobody has voted yet; Approve the 2026-2027 District Budget, marked Motion and Open, moved by Robert MacIntyre and seconded by Grace Adeyemi; and Election — Club Growth Director, marked Election and Not yet open. A line at the foot states that this is a read-only observer view and that nothing on the page can be voted on or changed.

Seen enough to want a conversation?

Act four

After the gavel

Most tools stop when the last ballot closes. The minutes, the certificate and the audit summary are generated from the record of what happened rather than re-typed from it.

Minutes, generated

Opening time, the quorum declaration, each motion with its mover, seconder and result, and the adjournment — assembled from the audit log, and editable if the minutes secretary wants to add the discussion. Print or save as PDF.

The Meeting Minutes screen for the Fall 2025 District Council, in two panes: the Markdown source on the left, the rendered minutes on the right. The text records the meeting type, date, venue and attendance of fifteen — five in person, ten virtual — then that the meeting opened at 17:04 and quorum was established at 17:04 against a threshold of five. Motion 1, approve the 2026-2027 district budget, is recorded as moved by Robert MacIntyre, seconded by Grace Adeyemi, and carried thirteen to three with one abstention. Controls above offer a language, regeneration from the audit log, and print or save as PDF.

The signed certificate

The certificate attests the meeting and prints the SHA-256 root of its audit chain. Any change to any recorded event produces a different root, so an auditor a year later can replay the log and check that it still resolves to the number on the paper.

The Certificate of Proceedings for the Fall 2025 District Council, marked Signed. It certifies the meeting by name, date, type and venue; attests that fifteen members registered and attended, five in person and ten virtually, and that quorum was established against a threshold of five club votes; records the budget motion as carried thirteen to three with one abstention and Chantal Bélanger elected Club Growth Director with nine votes; and states that the complete audit log of the meeting resolves to the SHA-256 hash printed below, so that any change to any recorded event produces a different root.

What an auditor would ask for

Turnout, per-ballot timing with the anomalies already flagged, and every allocation override with its approver and reason. A summary, instead of a five-hundred-line log.

The Audit Analytics page. Four tiles read one hundred per cent turnout on eight of eight eligible, three ballots opened, no timing anomalies, and one override applied by one approver. A ballot timing table lists Establish Quorum at six minutes, the budget motion at five, and the Club Growth Director election at seven, none of them flagged — closes under thirty seconds and opens over an hour are what draw a flag. Below, the single allocation override is listed with its time, the approver's address and the typed reason, which begins: the DCL showed Brockville Bridgebuilders suspended, dues paid 4 June.

Request access

Email vote@taverns.red and tell us:

  • Your district number
  • Your name and your district role — District Director, Program Quality Director, Club Growth Director, or credentials chair
  • The email address you’d like the account under, if different from the one you’re writing from
  • When your next council meeting is, roughly

We reply with an invitation link. Opening it creates your district and starts a 14-day trial.