🏸 Badminton Tournament Planner
🏸

Run your badminton tournament
from start to finish

Register players, build divisions, auto-generate schedules, track results live — all in one place.

View on GitHub See how it works
3
Tournament formats
Divisions per tournament
100%
Auto-generated schedules
Live
Big-screen hall display

Let us run your tournament for you

No installation, no servers, no technical setup — we provide a ready-to-use tournament site for your event. Pay once per tournament, based on the number of players.

Small

Up to 30 players
From 39 299 kr.
per tournament
  • We host it for you
  • 14-day tournament access
  • Daily backup
  • Email support

Large

80+ players
From 129 999 kr.
per tournament
  • We host it for you
  • 14-day tournament access
  • Daily backup
  • Email support

Want a quote or to discuss your tournament?

Drop us a line and we'll get back to you with a tailored offer.

✉ Email kontakt@btp.dk

Everything you need on tournament day

From the first player registration to the final prize ceremony — no spreadsheets, no paper lists.

👤

Player & team management

Register players with age, gender and division. Create singles, doubles and mixed doubles pairs with automatic gender validation.

🏆

Flexible tournament setup

Create tournaments with date, start time, number of courts and scoring model. Upload a logo for printed documents.

📋

Division configuration

Fully configurable divisions and categories — no hardcoded values. Set discipline, format and participant list per division.

🔢

Seeding support

Assign seed numbers to top players or pairs. Seeded participants are automatically placed correctly in brackets and groups.

📅

Auto-generated schedules

Generate a full time-based schedule that distributes all matches across courts and time slots in seconds. Lock it when ready.

Live result entry

Enter set scores visually during the tournament. Automatic winner registration, bracket advancement and standings updates.

🖨️

Print-ready documents

Match programmes, time schedules, score sheets and individual player schedules — formatted and ready to print.

📺

Big screen display

Live view of current and upcoming matches for a hall display. Shows court, status and opponents at a glance.

💾

Backup & restore

Export any tournament as a JSON backup. Import it on another instance to restore all divisions, matches and results.

🐳

Containerised deployment

Ships as a Docker Compose stack with PostgreSQL. Spin it up with a single command — no manual Python or database setup required.

From setup to trophy in 6 steps

A practical walkthrough in the same order a tournament planner typically works.

1

Register players & teams

Add all players with their name, age, gender and division. Create doubles and mixed doubles pairs — the system validates gender rules automatically.

Players list & add player form
2

Create a tournament

Enter the tournament name, date, start time, number of available courts and the scoring model (e.g. best-of-3 sets). Optionally upload a logo.

Create tournament form
3

Add divisions & register participants

Split the tournament into playable categories. Choose discipline (singles/doubles/mixed), tournament type, and register participants directly from the tournament page.

Tournament page with divisions
4

Generate match programmes

With one click, the system generates the full match list for each division based on participants, format and seeding. Reset and regenerate at any time before locking.

Division with generated match programme
5

Build the time schedule

Generate a court-and-time schedule for all matches across all divisions. Review it, make manual adjustments if needed, then lock the schedule to go live.

Time schedule page
6

Run the tournament live

Start matches, enter set scores, handle walkovers and watch standings and brackets update in real time. Use the big-screen view for hall display.

Tournament run page

Three competition formats supported

Choose the format that fits your division — or mix formats within the same tournament.

🔄

Round-robin

Every participant plays everyone else in the group. Standings are calculated automatically from results.

🏅

Bracket

Direct elimination with seeding. Seeded players are placed correctly in the bracket from the start.

🥇

Playoff

Group stage followed by a bracket. Top players from each group advance to knock-out rounds automatically.

Multi-user, per-club isolation

Each club logs in with their own account. Players, pairs and tournaments are tied to the user who created them — no cross-club data leakage. A public view lets spectators follow the tournament without logging in.

  • Per-user tournament and player ownership
  • Login required to create or edit data
  • Public read-only view for spectators
🔐
Tournament admin
Full access — create, edit, run
👁️
Public viewer
Read-only — schedule, results, standings

Ready to run your next tournament?

Open source, self-hosted and free — ships as a Docker Compose stack with PostgreSQL. Get started in minutes.

View on GitHub How to run