SSmashboard
Club badminton, scored fairly

Every win, weighted by stage.

Digitise registration, draws, courtside scoring and live leaderboards — with the scoring rules held in a configurable rule engine, not hardcoded.

Clubs on Smashboard

Append-only ledger

Every point is its own immutable row: player, event, stage, reason, value. A leaderboard is a projection, never a stored total.

Rules are data

A scoring profile is a database record. A club that wants 3 points per league win changes a form field — no deployment.

Multi-tenant from line one

Every table carries a club id, isolated by row-level security in Postgres — not application code remembering to filter.