how voting works
Votes are spirby’s signal of demand. They are designed to be hard to inflate.
the rule
Section titled “the rule”One vote per person, per post. Voting again toggles the vote off; it is a single up/down switch, not a counter. Every vote requires a signed-in user — visitors sign in via a magic link before they can vote.
how the vote is recorded
Section titled “how the vote is recorded”Every vote is keyed to the voter’s user id. Click vote: the vote is recorded, the post counter increments, the button shows it is on. Click again: the vote is removed, the counter decrements.
A user is bound to one vote per post by a (post_id, user_id) unique index, so even a flurry of clicks during a flaky network cannot count twice.
what counts as a vote
Section titled “what counts as a vote”The vote count on a post is the number of distinct voters. After a merge, spirby recomputes that number from the moved rows — and from the underlying user id — so the count cannot drift from the data.
privacy
Section titled “privacy”The vote row stores the voter’s user id and their per-org contact id. The voter’s email is never written into the vote row itself; it is read from the user record at send time when spirby delivers post-status notifications. The list of voters on a post is never exposed to other voters or to anonymous visitors of the public board.