A fully customisable padel scoring app — built as an installable, offline-capable web app (PWA), designed for iPhone (tested at iPhone 14 dimensions) and any modern phone.
- Americano — individual points, partners rotate every round. The pairing engine minimises repeated partners and repeated opponents.
- Mexicano — after a random first round, matchups follow the standings: court 1 takes the top four (1&4 vs 2&3), court 2 the next four, and so on.
- Three partner modes for both formats:
- Rotating — the classic, everyone partners everyone
- Mixed pairs (Mixicano) — players are divided into two groups, Women / Men by default (rename them for level mixes like pros/beginners); every pair gets one player from each group while scoring stays individual
- Fixed teams — enter pairs as teams; partners never change (team americano / team mexicano)
- Share results — one tap sends the live standings or the final podium through the native share sheet (or the clipboard on desktop).
- Custom everything
- Points per match: presets (16 / 21 / 24 / 32) or any number 4–99
- Two scoring styles: split X points (classic americano) or first to X
- Any player count (4+) — odd counts rest fairly, rest rotation is balanced
- Court count, round count, session name — all editable mid-session
- Late players — add anyone mid-session; they join from the next round (or immediately via reshuffle) and can start at 0 or at the average score. Players can also sit out and come back.
- Reshuffle — regenerate the current round's matchups at any time.
- Add more rounds — extend the session whenever the group wants one more.
- Tournaments — fixed teams with three formats:
- Groups: snake-seeded round-robin groups, live tables (win 2 · draw 1 · tiebreak point difference, then points scored)
- Knockout: seeded single-elimination bracket with byes, optional third-place match
- Both: groups first, top N per group advance into a knockout that avoids same-group clashes in round one where possible
- Feels native on iPhone — home-screen install (standalone, no browser chrome), safe-area aware, offline via service worker, everything persisted locally so a refresh or a dead signal never loses a score.
It's a static site — serve the folder over HTTPS (or localhost):
python3 -m http.server 8080
# open http://localhost:8080Deploy anywhere static (GitHub Pages works out of the box). On iPhone: open in Safari → Share → Add to Home Screen.
No frameworks, no build step: vanilla ES modules, hand-rolled SVG icon set, Space Grotesk (vendored, offline), localStorage persistence.
js/engine/americano.js round generation + standings (americano & mexicano)
js/engine/tournament.js groups, round-robin, brackets, seeding, podium
js/views/… home, setup wizard, play, tournament, components