A dame.is & pds.dad production bsky38.com

Tell readers the list is open, at the three places they find out it isn't #70

Merged pds.dad
targeting main from deleted fork:open-list-affordances
Merged opened by and assigned to pds.dad
targeting main from deleted fork:open-list-affordances

Logged-out readers were not realising that an account missing from the board can be put there by voting for them. The site did say so, in the hero's third clause and in the empty-pool state, and the empty-pool state stops rendering the moment the first vote lands. So the one explanation a reader could still meet was the one written for a situation that no longer occurs.

Meanwhile the state they do meet said the opposite. Search the leaderboard for someone with no votes and it answered "No nominee matches", full stop, at the highest-intent moment on the page: they have named the person they came for. "No nominee matches" reads as "not eligible". It now says nobody matching them has a vote yet, that anyone with a Bluesky account can be voted for, and carries the handle they typed to the vote page in ?q=.

Three surfaces, one sentence between them (VOTE_IS_NOMINATION), so they cannot drift into three explanations of one rule:

  • the search miss, which was the dead end;
  • a line under the leaderboard header, so the rule arrives without having to search for it first. The caption above it says where the cut falls; this says there is no door to get through first;
  • the foot of the list, for the reader who scrolls it rather than searches it and reaches the end without finding who they came for.

Two things had to be built for the handoff to survive. HandleInput looks up a value it was given rather than typed — onInput is a DOM handler and never fires for one set in code, so a prefilled box would have sat there holding a handle with nothing selected; it runs once on mount, and an exact match auto-selects as it would have if typed. And the vote page's "Log in to vote" carries returnTo with the query on it. Without that the chain died precisely for the people it exists for: a logged-out reader arrives holding a handle, logs in, and is returned to the front page having lost it.

/vote?q=jay.bsky.team now opens with that account picked and a Vote button ready.

Co-Authored-By: Claude Opus 5 noreply@anthropic.com

Commits 0