wiki-beef 🥩
The pettiest edit wars on Wikipedia, right now. Crawls the live MediaWiki API for the articles being reverted to death, scores the beef, and decodes what people are actually fighting about — borders, birthplaces, “is a hot dog a sandwich.” No API key, 100% public data, nothing uploaded.
🌐 Live leaderboard → · auto-updated every few hours
The site crawls Wikipedia straight from your browser (hit 🔄 refresh live to re-crawl any language edition). Same engine in your terminal:
npx wiki-beef 🥩 wiki-beef — edit wars on en.wikipedia · last 24h
1. 🗺️ Nikola Tesla · Borders & nationality
████████████████ 290 · 21 reverts · 10 editors · 4.2/h · last 12m ago
“rv, he was Serbian-American per consensus, see talk”
2. ⚽ List of FIFA World Cup top goalscorers · Sports
██████████░░░░░░ 151 · 10 reverts · 8 editors · 2.3/h · last 1h ago
“Updated Messi's goals in FIFA world cup”
3. 🔥 Shrek the Third · General beef
████████░░░░░░░░ 146 · 9 reverts · 3 editors · 36/h · last 6h ago
“you just revert it without explaining why”
## Why
Wikipedia is a quiet, never-ending war. Most of it happens in the **revert** — one
editor undoes another, then it’s undone back, over a birthplace, a date, a flag, a
pronoun, a comma. `wiki-beef` finds the articles where that’s happening *right now*,
ranks them by how hot the fight is, sorts the genuine disputes from plain vandalism
cleanup, and surfaces the actual edit summaries — the receipts.
It’s a **window into public data, not a verdict.** A high score means a lot of
reverts by a lot of editors, fast — not that anyone is wrong. The drama is already
public; this just ranks it.How it works
MediaWiki recentchanges API ─crawl→ reverted edits ─group→ contested pages
(mw-reverted tag, no key) ─score→ reverts × editors × velocity
─classify→ nationality / politics / bio / …
─→ ranked leaderboard- Crawl (crawlReverts) — pulls the edits tagged mw-reverted over a time
window from any language edition. Browser-safe (no node:), so it runs in the CLI, in CI, and live in the web page (MediaWiki allows anonymous CORS).
- Score (scoreBeef) — reverts × editors × velocity, boosted by
real-dispute signals (per talk, POV, consensus, unsourced) and penalized for vandalism signals (rvv, blanking) — so genuine fights outrank routine cleanup.
- Classify (classify) — a curated lexicon sorts each fight into borders &
nationality 🗺️, politics 🏛️, sports ⚽, pop culture 🎬, bios 👤, grammar ✍️, vandalism 🧹, or general beef 🔥.
- The live site is static: a GitHub Action re-crawls every few hours, commits a
fresh beefs.json, and the page renders it — no server, no database.