Design
Most of the design problems here came from one constraint: two people have to look equal, on every screen, in every state. That turns out to rule out a lot of ordinary interface habits.
Colour Has No Default
Each person has a colour. They are equal in weight and saturation, and neither is the accent colour of the app. Nothing is highlighted in one person’s colour by default, because a screen where one person’s answer is tinted and the other’s is plain reads as one being selected and one being the alternative.
The rule that survived the most revisions: colour lives in the name and nowhere else. An accent border or a tinted row on one person’s side of a comparison undoes the whole premise, and it is an easy thing to add without noticing.
Nothing is a Game
No streaks. No confetti. No progress bar that congratulates you for dividing your assets faster than last week. Progress is shown as a count because a count is useful, and it is never framed as a race between the two of you.
There is no leaderboard because there is no score, and there is no score because the moment one exists, every answer becomes a move.
Typography for Hard Reading
A serif for titles and figures, a sans for everything else, and generous line height throughout. Long explanatory text opens by default rather than hiding behind a disclosure, because the person reading it is usually reading it for the first time and should not have to discover that the explanation exists.
Copy is sentence case, active voice, short sentences, no marketing language, and no em dashes anywhere. Errors say what happened and what to do about it. This page follows the same rules.
Built at 375 Pixels First
The realistic use is a phone, in the evening, one person at a time. Every layout was designed at phone width before it was allowed to have a desktop version, tap targets are at least 44 pixels, and the dark palette is a real design rather than an inversion, because about half the sessions happen after dark.
Visible focus states on everything, labels on every input, contrast at AA or better, and animation that respects a reduced-motion preference.