Skip to content

Repository files navigation

Bracket Guess

Predict a knockout tournament round by round, follow the winner's path to the trophy, and export a polished poster from the browser.

Deploy React TypeScript Vite

Live: https://octopusgarage.github.io/bracket-guess/

Exported 2026 World Cup knockout bracket poster

Why

Most bracket tools are either backend-heavy prediction systems or spreadsheet-like pickers. Bracket Guess is a small product experiment: fast, local, multilingual, and focused on the moment people actually share - the final bracket image.

Features

  • Pick to the title - choose winners round by round until the champion is crowned.
  • Poster-first layout - the same bracket you play becomes the exportable image.
  • No backend - picks live in localStorage; no account, tracking, or server state.
  • Four languages - Chinese, English, Spanish, and Japanese team names and UI.
  • Mobile sharing - phones open the native share sheet; desktop downloads PNG.
  • Data-driven tournaments - add 8, 16, or 32-team brackets by registering JSON.

Quick Start

npm install
npm run dev

Open http://localhost:5173/bracket-guess/.

Production checks:

npm run build
npm test
npx tsc --noEmit

How It Works

Area File Responsibility
Bracket math src/lib/bracketMath.ts Derives rounds, matches, valid picks, pruning, champion state, and layout data.
Tournament data src/data/tournaments/ Stores team names, flags, seeding, locale fields, and bracket size.
UI state src/views/PredictView.tsx Connects picks, language, poster export, and share behavior.
Export html2canvas + qrcode Renders the bracket into a full-resolution PNG with a link back to the app.

Add a Tournament

  1. Copy src/data/tournaments/worldcup-2026.json.
  2. Set size to 8, 16, or 32.
  3. List teams in seeded order. Adjacent entries become first-round fixtures.
  4. Register the file in src/data/index.ts.

The bracket engine is size-generic; adding a tournament should be data work, not layout work.

Related

  • OctopusGarage - small tools for AI agents, local automation, and browser-native products.
  • MBTI Lab - another client-side product lab from the same organization.

License

See this repository's license terms.