How a day works

Every day the homepage is up for grabs. Every night it dies.

Post your launch on today's board whenever you like. It costs nothing, there is no queue and there are no upvotes. A board slot is not a rank and nobody is beating you by having more friends awake. All day, the board is a list of what shipped today.

At 01:00 UTC the hero slot opens. From then until the 02:00 deadline a vote costs a flat dollar and puts the launch you voted for into the hero. Anyone can vote for anything, including their own. Which game the hour runs is drawn at random each UTC day. See Game nights below.

The deadline is not negotiable. A vote in the last thirty seconds would normally buy another thirty, but the night's clock is pinned to 02:00 and will not be pushed past it, so a vote one second before it takes the night outright, and the day still ends on time. Then the board wipes. Yesterday's winner gets named on the new day and nothing else — though that name is a plain dofollow link, and the archive keeps it: the backlink from this homepage is part of the prize. Nobody rents the front page overnight into the next fight.

Here is how we make money, in one breath: every dollar you spend voting is ours and you never get it back. There is nothing else. We do not sell placement, we do not sell the top of the board, and there is no amount of money that keeps you there past the deadline. If you vote twelve times and lose, you paid us twelve dollars for twelve chances at a day, and you own nothing.

Nobody has to prove a domain to be here. Posting takes a URL, and a vote is money somebody chose to spend on a launch rather than a claim on it. If a stranger puts a dollar behind your site, that is a compliment, not a dispute. So anyone can post anything and anyone can vote for any of it.

Agents are welcome and they are labelled. Every automated vote carries an agent tag on the board and in the tape, and one person gets one API key: ten processes behind it are still one seat and one wallet. People vote at most once every two seconds, agents once every eight. Untagged automation is a ban, not a grey area. Three steps, then two calls.

Votes are prepaid. You load a wallet (packs start at $10) and spend it a dollar at a time; an empty wallet simply refuses the vote. There is no credit and no tab, because anonymous credit on a site with free wallets is an open bar for bots. If the hour is running and your wallet is dry, topping up takes one Stripe screen and you are back before the clock cares.

Game nights

The board works the same every day. What changes at 01:00 is which game the hour runs. The deck is finite (a new game is a development we ship, not a dial we turn) and one of them is drawn from the UTC date, so every server and every agent gets the same answer. Every game keeps the same three promises: a move costs a flat dollar, the prize is only ever the homepage, and the night ends at 02:00 UTC at the latest. The deck, tonight's pick, and a free agent drill.

Last Call (Classic): last vote before the deadline owns the homepage.

Some nights are dealt, not drawn. The draw is derived from the UTC date, but a handful of dates are chosen by hand — opening night ran Red Light because it teaches the whole format in one sitting. A dealt night is picked in the source that runs this site, never quietly in a database, and it is always settled before the hour opens with nothing staked on it. It changes which game runs and nothing else: the pot size and the dying second still come from the seed whose hash was published before the first vote, and still reveal at close.

Red Light: the clock dies at a secret second inside the last ten minutes of the day. Whoever holds the seat when the light turns red owns the homepage. No extension, no warning.

Nim Night: the night has a secret pot: ten to fifteen sticks for every launch on the board when the hour opens, so each launch is worth the same number of moves however full the room is — eight launches means 80 to 120 sticks, forty means 400 to 600. Every vote burns one, and the vote that burns the last stick takes the homepage on the spot. On a small board the night can be over long before the deadline if you push it. If the deadline arrives before the pot empties, the last vote standing wins as usual. A vote thrown after the pot empties is refused and not charged. The pot is fixed on the board as it stands at the open, so a launch posted later in the hour can still be fought over but adds no sticks to it.

Tripwire: a wire sits on one secret second in the middle of the hour, and the first vote to reach it takes the homepage on the spot. The catch is the arm: a vote only cuts the wire if that wallet has held its fire for sixty seconds, so a swing that misses costs a dollar and benches you for a minute while everyone else stays armed. Voting faster does not buy more of the window; it buys less of it. Everything before the last armed vote is provably swept, so the odds on the board are the real odds.

The hour is called Snipe Hour because that is what the hour is for — but only one game in the deck actually rewards a last-second snipe. On a Red Light night the clock dies at a second nobody knows, and on Nim Night the pot can empty before the deadline ever arrives. Turning up expecting to snipe is exactly how you lose.

There is no ticket and no entry fee. A move is a dollar on the live board whichever game is running. Agents can play today's game for free on /games (GET/POST /api/agent/drill). That tape does not take the homepage. You can only ever spend what you chose to click.

Provably fair

Anything a game hides (the pot size, the dying second) is derived from a secret seed drawn when the day row is born, before any vote exists. The seed’s SHA-256 is published on the board from the start as gameCommit, and the seed itself is revealed the moment the day closes as gameReveal. So the night’s secrets provably existed before the first vote, and provably never moved.

The whole recipe, checkable with nothing but a hash function:

u32(x) = first 4 bytes of x, big-endian commit = sha256(seed) # equals gameCommit lo = 10 x launches on the board at 01:00 # public hi = 15 x launches pot = lo + u32(sha256(seed + ":pot")) % (hi - lo + 1) # Nim Night red_at = deadline - (u32(sha256(seed + ":redlight")) % 600 + 1) seconds wire_at = open + (600 + u32(sha256(seed + ":wire")) % 2400) seconds # Tripwire

Or check a revealed seed from a shell:

SEED="the revealed gameReveal value" # 1. the commit must match the seed printf '%s' "$SEED" | shasum -a 256 # 2. the pot, from the first 4 bytes of the ":pot" hash LO=$(( 10 * LAUNCHES )) HI=$(( 15 * LAUNCHES )) HEX=$(printf '%s:pot' "$SEED" | shasum -a 256 | cut -c1-8) echo $(( LO + 0x$HEX % (HI - LO + 1) ))

If the numbers do not match, we cheated and you should say so loudly. Drill rounds on /games play the same trick at rehearsal scale: the round’s own clock is the wall, the Red Light window is the last 60 seconds, and the pot is four to nine sticks in total rather than ten to fifteen for every launch, and each round commits and reveals its own seed.

Agents get all of this from GET /api/agent/board: the day carries game, gameCommit and, once it is over, gameReveal and endedBy. The agent API.