Hobocode · Counter-hate monitor · Case 0 · Working notes
The 2026 World Cup was hosted across three countries: one already at war with itself over immigration and race (USA), another gripped by deadly populist polarization and routine political violence (Mexico), and a third whose polite facade is dissolving into American-style culture wars (Canada). Over the tournament, one event after another was co-opted into extremist and hateful narratives and counter-narratives. Here's what we found.
The map · one event, two narratives
In our previous reporting, we noted that major news items are regularly used to trigger or amplify extreme fringe narratives. The World Cup was no different. The immigration fight, the fights over race and over who counts as American or English were all running at full volume before a ball was even kicked. The World Cup created a persistent global audience. That's the first thing to understand about a big event: it's a stage, but not just for the players. There's a corresponding open mic held simultaneously, available to anyone with something to say. The border-wall meme, the ICE announcements, the abuse aimed at players, none of them needed the World Cup to exist. They just needed the World Cup's audience.
Take one thing that happens, and you can watch it split in real time. DHS posted a border wall over a photo of the US team. To the right this was a flex, homeland pride, our soil. To the left, within hours, it was the whole hypocrisy in a single image: a government wrapping itself in an immigrant-heavy team while it deports people with similar backgrounds, but without talent for the game. Same picture. Two totally different stories. That's the whole map above. The event doesn't pick which story it becomes. People bring the story with them and adapt it to the event.
And some of it wasn't spun at all. It was staged. ICE doesn't need to be at a soccer game to enforce the law. Putting it there, every day, and announcing it, isn't enforcement finding its target. It's enforcement picking a stage, at an event where the crowd has a lot of brown faces and a sport more popular in foreign countries. Soccer and immigrants and handcuffs land in the same picture on purpose. The wall DHS posted over the national team is the same move. Nobody spun these after the fact. The US government built them to be spun.
This isn't generically true, but it is the reality of the current situation.
immigrants, Mexicans, Black and mixed players by name, Iran's team
people and protected groups
Trump, DHS, ICE, Noem, Vance, FIFA
the government and named officials
This is no scorecard of who's worse. It's a description of where each side pointed their narratives. It is a line between criticism and hate in this instance. Going after ICE's policy is politics. Going after a player's citizenship is not. The one place the left crossed into the same register was narrow, and we logged it: booing the country itself, calling the whole nation an "openly racist entity." That's the mirror of the thing it was criticizing. It's real, it was hyperbole, and it still counts.
Every time one side coopted something newsworthy, the other side made it mean the opposite. That's the counter-narrative, and in today's world, it fires almost automatically. Some of it is sincere. The travel advisory from more than 120 groups was built on real detentions and real fear, and it cited the cases. But a lot of it is just a free shot. The "Trump is staging a fascist spectacle, look at Mussolini in 1934, Berlin in 1936" columns didn't need anything to actually happen at the World Cup. That argument was already written and just waiting for the right time to be published.
Not everything ready and waiting is a hot take meant to get clicks from an eager audience. Some of it is a coalition that already had a real mission, and simply pointed all of it at the World Cup as the next obvious venue for the fight. That shows up later in this piece, and it's the biggest single finding in this hunt.
It would be nice if you could sort every narrative into genuine or opportunistic, but you can't, because both live in the same post. Plot each event on two axes instead: how loud did each side's narrative get, and how real was it?
Loud vs real · every big narrative
You can read the tells. Does the narrative ignore the facts, or did the narrative already exist before the thing happened? Does a source or account only ever post one angle, and show up on every trigger event? Is the format built for cheap engagement, a jersey photo, a meme slapped over a flag? Does the person carry a grudge the trigger happens to serve? None of those settle it on their own, but when you stack them up they move the needle. The honest answer for most posts is "a little bit of both."
We went in assuming some big accounts drove most of the narratives. A Tate, a Loomer, some influencer turning a moment into a movement. So we checked, name by name, roughly 330 people and accounts across the right and the left. Most of them posted nothing about any of the happenings around the World Cup. We don't write those up. Below are those who actually said something, with the real post next to it.
Posted a photo of Moroccan players praying after a goal, captioned with a two-word obscenity about Allah. Did it again days later with an AI meme.
not spin on an event. the event itself.
Morocco beat the Netherlands, real riots broke out in three Dutch cities that night. She took the footage and argued Dutch-Moroccan citizens, some of them fourth and fifth generation, "are not really Dutch," and called them "perfect candidates" for mass deportation.
one riot, one night → an argument about an entire ethnicity. the whole recipe in one post.
Published a race-and-ethnicity breakdown of the US roster before the tournament started, asking whether the team leaned on "black athleticism" or "Latino soccer savvy."
nobody spun this ugly. he wrote it that way on purpose.
Timed a republished column to the final itself, using the real ratings numbers to argue that Americans watching soccer is proof of demographic replacement.
a decade-old argument, waiting for a hook.
Those four are the real thing. Not coded, not implied, just said. And they came from checking, not from assuming who'd be there.
The clear preview of what's coming in our next piece showed up here too. An Algerian broadcaster claimed on air that "the Jewish lobby" was protecting Messi, part of a wider pattern JTA covered in depth. From that one clip it split three ways at once. Jackson Hinkle, on the left, ran with "FIFA is controlled by ZIONISTS." Sneako escalated from a joke about Messi and Israeli soldiers into an actual confrontation with a man in Times Square. And the account built to fight this stuff, Combat Antisemitism Movement, is the one whose post actually pushed the clip into wider circulation, because shining a light on these narratives, calling them what they are, and naming names is one of the best ways to counter them.
Megyn Kelly gave us the cleanest version of the coded move, live, on air. Very briefly, she didn't stay coded for long. Norway's fans did a wholesome chant that went genuinely viral. She used it to ask why the US can't get immigrants "like that," Norwegian, "clean-cut," instead of people from "shithole countries like Haiti and Somalia." Then she went straight for the caustic accusations: "child molesters," "rapists," "murderers." That was the same narrative as the DHS wall meme, spoken on a mainstream broadcast, and she didn't even hold the coding for one full sentence. She made it very clear what she meant. That's escalation.
And Thomas Homan told Fox and Friends New York would see "more ICE agents than you have ever seen," days before the city hosted the final, and called it keeping a promise against the mayor's sanctuary law. Not commentary on the event. A threat aimed at it. The US government and prominent right-leaning media were on the same page, and barely bothering to disguise their language. Their intent was to inflame division and rally their supporters, and they weren't subtle about any of it.
One name broke the pattern completely, and we're keeping it in for exactly that reason. Andrew Tate did post about the World Cup. Just not what you'd guess. He called the crowds complacent and said people who care more about football than stopping migration "deserve slavery." The internet mocked him for it. He tried to escalate, missed, and the world laughed a bit and moved on. The big accounts don't always get the attention they seek. But that's another side of this: testing the message cost him nothing. Mockery from his opponents is nothing new for people like him.
hover to read one — on a phone, tap
That last one is the real finding of this whole hunt. The counter-narrative side was working hard, and it showed. ACLU, Amnesty, Human Rights Watch, a dozen more, and none of them were an influencer chasing a moment or astroturfing a movement. A rights guide became a 120-group travel advisory, then became a named list of which World Cup sponsors would push back on ICE and which wouldn't. They showed up with receipts, just like we're trying to do. Real dates, real letters, real names, every bit of it aimed at a policy. They were well organized, and they were ready for this, the same way the hate side was ready. They just had a coalition and a legal team behind it instead of a jersey photo and a grudge.
The World Cup got used opportunistically on both sides. Hate used it to spread. The counter-narrative used it to organize. This round the volume went to the counter-narratives. That's encouraging. But one thing about events like the World Cup: we can see them coming. There is time to prepare, and organization pays off. The other side is much more effective when it's opportunistic. When something happens that we don't see coming, they react fast, test messages the way Tate did during the World Cup. The ones that work spread fast, escalate, get coded, and the counter is often anemic.
Volume and impact are different numbers, and it's easy to mistake one for the other. The counter was louder. The boycott was everywhere. Petitions, op-eds, a former FIFA president lending his name. Here's what it did.
All that boycott noise had zero effect on the actual thing. Fake videos made the racism wave look bigger than the real, ugly, verified racism sitting underneath it. Loud tells you what's being said. It doesn't tell you what's landing, or whether it's even real. We need to keep our eye on impact. That's not always easy to do: attendance isn't a proxy for attention. You can attend a game you love and still support the aims of the people trying to disrupt it.
Run the same test on both sides and the tool holds. We found real xenophobia on the right and real civil-liberties concern on the left. We found opportunists on both. And we didn't call criticism of ICE "hate," or wave off "self-deport" as "just criticism." We use one standard in both directions. That's the whole point. A monitor that only ever finds hate on the other team isn't a monitor. That's a weapon. This time we caught the right's overreach and the left's, by the same rules.
It also caught which side showed up organized and which side showed up opportunistic. Across 37 real hits, the hate side ran on a government account and a scatter of individuals coopting a moment. The counter-narrative side ran on a coalition with a legal team and a mailing list. That gap is real. Now we need to test it: does opportunism outperform on sudden trigger events? Does organization outperform on scheduled events? The answer seems obvious, but we need to test it, and we need to understand what "outperform" even means. In this case the counter-narrative was louder, but it largely failed at its boycott goal. Did that goal even matter? Does the out-loud goal ever matter?
Said plainly, so nobody has to guess. We didn't crawl native X or TikTok at scale this time, so the 89,000-abusive-posts figure is FIFA's count, not ours. Some of the fringe threads we're carrying from an earlier brief are not as fresh as we'd like, and they're marked that way. None of the numbers here are invented. Where we saw a summary instead of the source, it says so.
We have the pattern. The next move isn't to build yet. It's to keep testing it against other targets and see if it holds up. We are pressure-testing the method itself, and we should get better at this with every pass. This work is helping us understand what we need to build.
This is the work the Online Hate Weather Report exists to do. Find the pattern, name it, prove it, then go check it again. It is a volunteer non-profit effort. If you want to help out, we're raising a small amount to cover infrastructure and tokens to keep going further.
Support the fundraiser →Working notes, not a finished piece. Every event and number here traces to the verified narrative map. Nothing is invented; where the source was a summary and not the thing itself, it's flagged.