Brands buy reach. Local sport runs on trust. A billboard, a national ambassador, and paid social targeted by zip code all reach people in a city, and none of them reach the network that moves local sport: the athletes, clubs, gyms, shops, schools, and fans a city already listens to. That network isn’t on any media plan, so most of the money flows past it.

Nomads FC exists to read that network before the money goes in, and to keep a record of what it found. One athlete, one city, one 28-day sprint. The idea grows out of Niche Monopolies in the Agent Economy, and the engine’s README puts it in two sentences:

The monopoly is not content. The monopoly is knowing which athlete can move which fans in which city toward which commercial action — and proving it with data that sponsors will pay for.

Three sides of one gap

Athletes and clubs have local standing and no way to show it. Next to a national name, an athlete with a loyal following in one city looks small, because the only numbers on offer are follower counts, and follower counts don’t say who shows up.

Partners are the venues, shops, gyms, and restaurants a neighborhood already uses. They hold the most local trust of anyone, and a national campaign has no way to reach them.

Brands know they need local relevance. What they lack is specific: a map of local athletes, a partner network, neighborhood-level cultural knowledge, trusted operators on the ground, and proof before large spend. None of that can be bought nationally. It gets collected one city at a time, by people who are there.

Signal, demand, partners, activation, proof

The method is five steps, and the order is the argument.

Signal comes first because a city says what it cares about before anyone asks: which sports, which neighborhoods, which venues, whom people already follow, and where a brand isn’t welcome. Reading that is cheaper than guessing it.

Demand is tested, never assumed. A drop, a preorder, a reservation, or a ticketed event is a probe, not a product launch. Under the reservation model there’s no inventory risk. If people commit before anything is made, the signal is real. If they don’t, nothing was manufactured on a guess.

Partners are the distribution. A shop that displays the athlete or a gym that hosts the event reaches people a feed doesn’t, and a partner who agrees to co-promote has lent the campaign trust it couldn’t buy.

Activation is one community moment, partner-hosted where possible, with RSVPs and attendance counted.

Proof is what a sponsor pays for: opt-ins, engagement, reach, reservations, and attendance, in aggregate. Sponsors never get fan data. No names, no emails, no individual records. That rule is the line between proving an audience exists and selling it.

A test that can fail

The sprint has two gates. At day 14 the call is GO, ITERATE, or KILL. At day 28 it is SCALE, ITERATE, KILL, or WATCH. Both include KILL. A test that can only succeed is a campaign with a reporting phase. The gates exist so a city can say no early, while it’s cheap to hear.

Manual first, structured always

The principle that makes this a product rather than a service is memory. A sprint that ends with a good video and no structured record teaches the next city nothing. People run the sprint. The software makes sure what they learn lands somewhere the next sprint can query: what worked, what failed, the strongest and weakest signals, and what the city taught about its audience and partners. Every scorecard carries a confidence value beside the score, because a desk-research guess and a measurement from a finished sprint shouldn’t count the same.

The engine began as a documentation package that ruled out custom code for its first version and planned to run on off-the-shelf tools. Two days later it had a Postgres schema, and two days after that a custom portal. The no-code rule didn’t survive. The principle did.

The machine

The build ran from May 3 to June 1, 2026, across three private repositories. The engine is called 10x in the code. Nomads FC is the public brand.

  • Public site: Next.js 14 on the App Router, TypeScript, Tailwind, Framer Motion, and Lenis. The method, field notes, pages for athletes, sponsors, and partners, and a product collection for the drops.
  • Portal: invite-only, on Supabase auth and Postgres, with an interface in IBM’s Carbon Design System. Sign-in is by password or a one-time code that can’t create an account. Eight roles, from admin to viewer, with access granted per campaign.
  • Proof rooms: one per campaign. Anyone without access gets a 404, not a refusal. The page is fed by a single typed object with no raw fan data, so the no-PII rule is a type definition, not a policy paragraph.
  • Data model: twelve tables in their own schema. Five cover operations (campaigns, partner and sponsor pipelines, commerce tests, an audit log). Seven hold the intelligence: city profiles, athlete market profiles, brand profiles, market relationships, activation playbooks, scorecards, and sprint learnings.

About 10,700 lines of TypeScript in all.

Still open

Checkout doesn’t take money yet; the cart and product pages exist without it. The performance layer, which would turn athlete content into whitelisted paid ads and benchmark it against a brand’s own media, is written as specs with no tables behind it. The two near-term products, a Local Market Brief and a City Activation Sprint for a single brand objective, fit the schema but aren’t packaged.

This piece has no sprint results. It describes the machine: a method, a site, a portal, and a schema built so the evidence lands somewhere. Whether the structure is right gets decided by the first city that runs through it.