OhMyGame
OhMyGame is the open-source studio for making games with AI. Design, build, playtest, and publish games in one app, with your own model keys.
Football puzzles and pub games. Chain, Spoofed, Pitch pin and Rondo.
Translation pending
GamesTypeScript · CSSGitHub @JonnoMillarOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Daily football puzzle games on a player database built from Wikidata and Wikipedia.
Taken from the repository README
Loading the full README.
Read the full README ↗A daily football puzzle drawn as a sticker album. Two or more famous players are on the page, with gaps between them. Name the missing players so that each neighbouring pair played for the same club, then seal the page and find out whether your chain holds.
Play it: https://ballknowledge-games.vercel.app
/collection, and the key to the grades is one tap away from every page.The same player database runs two party games for playing in a group with one phone:
/rondo): pass the ball to anyone who shared a club with the player on it. Each club can be used once per ball; run out of links and you lose the ball./slugger): football played as baseball. The pitcher names a club and the batter names someone who played for it. Big clubs are singles; small clubs are home runs.flowchart LR
WD[Wikidata SPARQL] --> P[Pipeline scripts]
WP[English Wikipedia infoboxes] --> P
P --> POOL[(data/pool.json<br/>11,741 players)]
POOL --> GEN[Daily board generator]
GEN --> BOARDS[(content/chains)]
POOL --> S[Next.js server]
BOARDS --> S
S -- board without its answer --> B[Browser]
B -- the filled chain --> SEAL["/api/seal judges it"]
SEAL -- result and reveal --> B
tests/pipeline/traps.test.ts, and the example queries in docs/superpowers/specs/queries/ prove each one.src/pipeline/overrides.ts./api/seal, which validates it and judges every link on the server.scripts/build-completion.ts builds the dailies from famous givens and is seeded, so a rerun writes the same boards. A test re-checks every board: on each plate, the intended answer must be a well-known fact (fame 50 or above) and the next-best candidate must be much less so (under 35). A board that stops meeting that rule, for example after the data changes, fails the test suite./credits lists the author and licence of every one.Next.js 15 (App Router) and React 19, TypeScript throughout, Vitest (1,363 tests), and tsx scripts for the data pipeline. There is no database: the pool is a committed JSON snapshot read once by the server. Drag and drop uses dnd-kit.
Tested on Node.js 24 (Next.js 15 needs 18.18 or later).
npm install
npm run dev # http://localhost:3000
npm test
npm run typecheck
The data is committed, so the app runs without fetching anything. The pipeline scripts (npm run fetch:pool, build:pool, fetch:careers, merge:careers, fetch:portraits, fetch:credits) rebuild it from the live sources.
| Path | What |
|---|---|
app/ | Routes: the album (/, /play/[id]), Rondo, Slugger, the API routes, and /credits |
components/ | The board, stickers, search sheet, reveal and Slugger UI |
games/rondo/ | Rondo, kept self-contained |
src/lib/chain/ | The rules: links, fields, results, the share line |
src/server/ | Loading the pool once, stripping answers, judging |
scripts/ | Data pipeline and board generator |
data/, content/ | The player pool and the boards |
tests/ | Unit tests, data-trap tests, and a test that holds every shipped board to its rules |
Code is © 2026 Jonno Millar, all rights reserved: public to read, not to reuse (see LICENSE). The data belongs to its sources: Wikidata (CC0), English Wikipedia (CC BY-SA 4.0), and the photographers and clubs listed on the app's /credits page. This is an unofficial fan project, not affiliated with any club, league or player.