Skip to content
TRUCE

The vote is the product.

Most trip apps are a place to write the plan down. Truce is the thing that decides what the plan is - a real vote, held on a clock, that nobody in the group can override. Everything else it does is downstream of that.

Votes per member
One
Organiser override
None
Decided by
The clock

One block, start to finish

A trip is not one big decision, it is thirty small ones. Truce breaks them into time blocks - a slot on a day - and runs a self-closing vote inside each.

  1. A block opens

    Somebody carves out a slot - Saturday 14:00 to 18:00, or Thursday dinner. That slot is the unit of decision: you are not voting on a trip, you are voting on an afternoon.

    Any member

  2. Options go on the ballot

    Anyone nominates into the block, pulling real activities from Viator or real restaurants, bars and sights from Google Places. The price and the ticket option come with it, so you are voting on the actual thing rather than the idea of it.

    Any member

  3. Everybody votes

    One vote per person per option, up or down. Change your mind as many times as you like while the window is open - you still only ever hold one vote on it. Add a line saying why, if the why matters.

    One each

  4. The window runs down

    The block carries an end time from the moment it is made, counting down live on every phone in the group. Nobody can end it early to catch a favourable moment.

    Visible to all

  5. It locks itself

    At the deadline the highest score - votes up minus votes down - wins. The block drops off the ballot and the winner is on the plan. If everyone is looking, they watch it happen; if nobody is, a job five minutes later does exactly the same thing.

    Automatic

What the vote guarantees

A thumbs-up icon is easy. What matters is what the thumbs-up is allowed to do, what it cannot be talked out of, and where the rule actually lives - in the interface, where it can be worked around, or in the database, where it cannot.


One vote per member

A uniqueness rule on the pair of member and option, not an honour system. Two votes from one person on one option cannot exist in the data, so no client bug and no clever request can manufacture one.

Database constraint

No casting vote

There is no tie-break power anywhere in the product. When the scores are level, the resolution is a runoff or chance - never a person.

Nobody holds one

No veto

An organiser cannot remove a nomination they dislike from the ballot, and cannot overturn a block that has already decided.

None

No early finish

The lock-in control does not appear until the window has actually closed. There is deliberately no way to end a vote while it is running - an earlier build had one for testing and it was taken out.

Deadline only

Nominating is not a privilege

Anyone can put something on the ballot. A per-day cap stops one enthusiast burying everyone else, and the organiser is exempt from that cap so a trip cannot end up with nothing to vote on.

Every member

Retracting takes the note with it

Pull your vote and the reasoning attached to it goes too. A justification with no vote behind it is just a comment, and Truce does not have comments.

By design

A tie is the honest test

Any system looks fair while there is a clear winner. What a voting system actually is shows up when the scores are level - and that is the moment most tools quietly hand the decision back to whoever is most senior in the group.

Reducible tie

24-hour runoff

Three or more options level at the top, with others below them. The stragglers are marked as lost, the block reopens for 24 hours, and the group votes again between the leaders only. Round one’s votes carry over - the second round is an amendment, not a fresh start, so nobody’s tally is inflated by voting twice.

Irreducible tie

The wheel

Two options level, or everything on the ballot level, or a runoff that ties again. There is nothing left to reduce, so it goes to chance: a segmented wheel spins on screen and lands on one. The winner is drawn before the animation begins - the spin is there so the group watches the same coin flip rather than being told the result.

Nobody watching

Same odds, no ceremony

Deadlines pass while people are asleep or on a plane. When that happens the server settles the block on identical odds, with no wheel and no audience. The outcome does not depend on who happened to have the app open.

The reason, attached to the vote

Knowing a thing lost 4–2 is less useful than knowing it lost because two people had already been and one of them cannot do stairs. So a vote can carry a line of reasoning, and that line lives on the vote itself.

It means the justification cannot drift away from the thing it justifies. Retract your vote and the note goes with it. Change your mind from yes to no and the note stays, ready to be rewritten, rather than being silently dropped while it still says the opposite of what you now think.

This is deliberately not a comment thread, and Truce is deliberately not somewhere to argue. Your group already has a thread for that. What it does not have is a record of why the group chose what it chose.

What it will not do

A voting system is defined at least as much by what it refuses. These are the things a group planning tool normally does that Truce does not.

It will not let the loudest person win

Volume is not an input. A vote is a vote whether it arrives with three paragraphs of argument or in silence at 2am, and the tally is the same either way.

It will not quietly ask the organiser

The organiser role exists to set up a trip, invite people and manage the rules of the game. It confers no extra weight inside a vote - no thumb on the scale, no final say, no deciding vote in a tie.

It will not lose the result

A decided block is not a message that scrolls away. The winner goes on the itinerary, the losers are kept and marked as such, and every vote and reason is still there afterwards.

It will not make you re-enter anything

The point of the vote deciding is that the decision then acts. There is no step where a volunteer copies the outcome into a spreadsheet, a doc, or another app.

It will not become a chat

Truce had message threads. They were removed, because your group already has a thread and was never going to keep a second one alive. What survived is the one part worth keeping: the reason behind a vote, attached to the vote.

Not everything is an activity

The ballot handles the things with a price and a time slot. Two other votes sit alongside it for the decisions that have neither.


Group polls

Which flat, whose car, what night, who is driving back. Single or multi-select, with a deadline like everything else, and anonymous if the honest answer needs cover. They sit on the same ballot as the activity blocks, so there is one place where open questions live.

Free · any question

Dates poll

Start a trip with no dates at all. Ranges get proposed, everyone marks each one available or not, and the grid fills in live so the group can see the answer forming. Confirming it unlocks the plan and the ledger.

Doodle-style

What is not a vote

Booking, paying and settling up are not put to the group - they are one person's action, recorded honestly for everyone to see. Voting decides what happens; the ledger records who did it.

On purpose

And then the decision acts

This is the part that makes the vote worth holding. The moment a block locks, three things happen without anybody doing them.

How that compares to a poll in the chat


It joins the itinerary

The winner appears on the shared day-by-day plan, in its slot, for everyone. Clash detection has already made sure nothing else is booked over it.

Same second

The ledger expects it

A won activity shows up on the ledger as something still to be booked, with its cost known. Whoever books it fronts the money and the split freezes right there.

Awaiting booking

Everyone is told

A notification goes out and the trip's activity log records what won and when. Nobody has to relay the result, and nobody can claim they were not asked.

Push · log

Let the group decide it.

Truce is in build for iOS. Leave an email and we’ll send exactly one message on launch day - no newsletter, no drip, no sharing it with anyone.

One email at launch. No newsletter, no sharing, unsubscribe in a click.