215 Stops, 15 Cities, Zero Vans
I want to tell you about the most dangerous feature I ever shipped. It's not an exploit. It's not AI. It's a cities table.
Here's the design principle behind TheHunt: everything is data. A hunt is a row. A stop on that hunt — the landmark, the task, the point value, the pin on the map — is a row. A photo check-in is a row. Which means launching an entire new city is not a software release. It's an INSERT. No deploy, no downtime, no code review. Just type the city and it exists.
I built that on purpose. I am now going to tell you why it was a mistake, in the sense that giving a Marine an unlimited ammo cheat is a mistake.
The five waves
Launch day, the platform opened with 4 hunts and 29 stops. New York City stuff — the icons, the old downtown, a Central Park ramble. Respectable. Restrained. A man could look at that and say "nice little weekend project."
Then the INSERT key started whispering.
- Wave two: a public leaderboard, a dusk-only ghost route through downtown, a bridge walk.
- Wave three: a 7-train food crawl across Queens, because the 7 train is the greatest restaurant hallway in America and someone had to make it a competitive sport.
- Wave four: Boston's Freedom Trail. Norfolk, Virginia — twice, because a Navy town deserves a proper salute.
- Wave five, late at night, when the judgment centers of the brain are legally closed: Chicago. Los Angeles. Las Vegas. Atlanta. Pittsburgh. Charlotte. A small colonial town in New Hampshire, for reasons lost to the hour. And then — because the table did not have a
same_continentconstraint — Milan, Italy, and Newark-on-Trent, England, the Siege Town, where a hunt now ends at a castle King John died in.
Final tally by sunrise: 31 hunts, 215 stops, 15 cities, two continents. Zero code deployed. The application never restarted. It just woke up one morning with an empire, like a Marine who fell asleep in Kansas and woke up holding a map of Europe.
This is what "low friction" actually means, by the way. Everyone in tech says they want it. Nobody tells you that friction was the only thing standing between you and seeding a scavenger hunt in a country you have never been to at two in the morning.
The platform trusts no one, including me
Registration is deliberately old-school. You sign up, you get a hunter number and a generated NYC call sign — the machine christens you something like GOTHAM PIGEON and you will learn to love it. Come back with the same email and it re-attaches you to your record. The bot defense is layered, and I'm not going to draw the enemy a map of it — I'll only share its founding observation: bots cannot resist a free text box. It is the single most reliable behavioral fact I know about the internet.
But the real spine of the thing is the judging pipeline, and the judging pipeline is built on a principle I learned a long time ago: trust, but read the EXIF.
When you check in at a stop, you upload a photo. The platform strips the EXIF data — timestamp and GPS — and hands it to the judge as a single number: distance from the pin. Cheat detection by arithmetic. You say you were at the lighthouse; your camera says you were 4.2 kilometers from the lighthouse; the Judge's Bench says rejected, and it says it with the serenity of a machine that has no stake in your feelings. Only approved finds score. The leaderboard runs on approved points only, with progress bars, so the standings are the audited truth and not the honor system.
And yes — the 21+ bar-crawl routes carry the same house rule as everything else I ship: playable sober. Written into the rules, not implied. Points are for finding things, never for drinking things. The Marine Corps taught me a lot about liberty ports; the main lesson is that the guy taking the photos has the best stories anyway.
The Bitch Creek problem
Meanwhile, over on my other, rowdier domain, a sibling hunt went live at hunt.bitchlove.com — same rows-not-code architecture, darker map. It needed a hometown, and the obvious question got asked: is there a city in the United States actually named Bitch?
This triggered real research. Not vibes — GNIS, the federal Geographic Names Information System. And the answer is: no. There is no city or town named Bitch anywhere in the United States. I checked so you don't have to.
There is, however, Bitch Creek — a real, federally cataloged stream on the Idaho/Wyoming line, GNIS Feature ID 377707. And the etymology is better than any joke I could write. The name is trappers' English mangling the French Anse de Biche — "Doe Cove." Biche means doe. A female deer. The most aggressively named waterway in the American West is, in the original French, about Bambi's mom. That went straight into the site copy, verbatim, because you cannot improve on the historical record. The frontier heard a gentle French phrase and did what the frontier always does.
Hunter #1 is a real person
Last thing, because this is the part I'm actually proud of. Before every wave went live, I ran the full protocol myself: a real registration, a real photo check-in, a real judging round-trip — register, upload, get judged, watch the points land. Then I wiped my QA rows.
Which means the first hunter number this platform ever issues goes to a real human being, not a test account. Fifteen cities, two continents, 215 chances to stand somewhere interesting and prove it to a machine that reads your camera's diary — and the roster starts clean at #1.
The empire is rows. The rows are waiting. Bring a phone with GPS enabled, because the Bench will know.