ToolNewFor Game clubs and friend groups

Swiss Night

Everyone plays. Nobody plays twice.

Pairs your board game tournament round by round with no rematches and a fair bye, then tracks standings with tie-breaks and prints pairing slips.

Download the source

Zip, 210 KB. MIT licence. Built 28 Oct 2026.

Live preview

Loading the live site…

This is the real site, not a mock-up. Click around; the button on it opens the working app.

What you get

Everything a tool needs, already done.

Pages and screens

  • Hero
  • Pairings
  • Standings
  • Pairing slips
  • Live demo
  • Footer

Features

  • No rematches between players
  • Fair bye for an odd player count
  • Standings with Buchholz tie-breaks
  • Sonneborn–Berger tie-breaks
  • Printable pairing slips to cut up
  • Runs in the browser, no sign-up

Palette

  • #2f6b4f
  • #ffffff
  • #e3eee6
  • #1f1a14
  • #5e5446
  • #f3ecdf

Style

  • Warm
  • Playful
  • Editorial
Swiss Night on a phone
On a phone, as shipped.

For developers

A real codebase, not a page builder export.

Stack

Vite, React 19 and TypeScript for the app. The launch page is plain HTML, CSS and a little JavaScript with no build step. Vitest for unit tests, Playwright for browser tests.

Run it

unzip swiss-night.zip
cd swiss-night
npm install
npm run dev

In the zip

  • site/ the launch page with the built app in site/app/
  • src/ and e2e/ the app source and tests
  • docs/technical-docs/ architecture, runbook, quick reference
  • START-HERE.md and LICENSE (MIT)

More like this

Also on the shelf

  • Home & PersonalTool

    Dues

    Lists your subscriptions, works out what you really pay each month and year, warns you before renewals and trial ends, and shows what cancelling would save.

  • Home & PersonalTool

    Pantry & Plate

    Lay recipes on a seven-day grid, set servings, and get one shopping list grouped by aisle with the contents of your pantry already taken off.

  • Home & PersonalTool

    Quits

    Log shared trip costs in any currency with uneven splits, and see the fewest payments that settle everyone, with all data saved in your browser.