ratestartups.com

Overview
ratestartups is a head-to-head voting game for tech. Two companies, one question: who has more aura? Every vote feeds a live Elo leaderboard. There's no signup and nothing to solve; you land on the page and you're already playing.
It went viral on its first weekend: over 1M edge requests and 117,000 votes in 72 hours, with no downtime.

What I woke up to on August 6
I checked the Vercel dashboard one morning and the traffic graph didn't look like a graph anymore. 423,629 requests in a single day, a vertical line where the usual flat one had been. No launch post, no announcement. People were just sharing it.
That was the point, but it was still strange to watch. The game is built to spread: per-company share cards, embeddable live rank badges, voter taste profiles. Every hot take about the leaderboard comes with a link back.

Strangers were arguing about the leaderboard
Other people's screenshots were the giveaway. One tweet of the board, "Tech companies rated by aura", pulled 330.9K views on its own. The rankings became the content. People posted the board to complain, the complaints brought more voters, and the new votes changed the rankings again.

The traffic was the easy part
Over the peak 72 hours the site served more than a million edge requests and processed 117,000 votes with no downtime. The matchup endpoint alone absorbed hundreds of thousands of calls. Most of what made that survivable was decided before launch. The server deals every matchup, the next pair prefetches while you're still deciding, and everything cacheable lives at the edge. The cards swap instantly because the work happened before you clicked.

The real problem was manipulation
Popularity brought vote farming. Within a day someone was pushing a company to #1 with dozens of throwaway sessions from a single network. Catching it, reversing it, and making it unprofitable turned into the real design problem. Honestly the more interesting half of the project.
The defense is layered, and it's silent on purpose. An attacker never sees an error; their votes just stop moving the board. Cloudflare Turnstile runs once per identity. During the spike it issued 10.77k challenges and passed the 71.89% of traffic it judged human, and almost nobody ever saw a checkbox. Behind that, bot detection and per-network sybil damping weigh every session, and votes are reputation-weighted. Hidden trial rounds void a bot's run before it ever touches the rankings.
Underneath all of it, votes are an append-only ledger. If I find manipulation after the fact, I void it and replay the entire leaderboard from scratch. The rankings are always reconstructible. Two live incidents got caught, reversed, and patched this way without losing a single legitimate vote.

Every matchup is dealt exactly once
Matchups are dealt by the server and are single-use, so you can't replay a pair to farm it. Ratings move on Elo with provisional K-factors: new companies find their level fast, settled ones stay put. Three boards run in parallel: startups, venture firms, and a secret fruit poll.

The interface stays out of the way on purpose
Two cards, one question, nothing else on screen. Every system that keeps the board honest is invisible unless you go looking for it.
Next.js, Postgres on Supabase, Drizzle, deployed on Vercel. Around 90 tests, CI on every push, and a nightly integrity cron that re-checks the ledger.




