The problem
A badminton session has more players than courts. Someone has to keep track of who is on, who is waiting, and who plays next, and keep the rotation fair as games finish.
That person is usually standing courtside with a phone. Sports halls often have weak signal, so a tool that needs a server can stop working at the exact moment it is needed.
What I built
1up Court Queue is a web app for session organisers. It tracks the courts, the players and the queue for a session, and handles the rotation onto courts.
It is built mobile-first, because a phone is what an organiser has in hand. It fills the whole screen on notched devices without hiding controls behind the notch, and it offers light, dark and system themes.
How it works
The app has a single-file build target. The whole thing, code and styles included, compiles into one HTML file. Open that file and the app runs, with no server behind it, so it keeps working at a venue with no connection.
Two smaller details make it feel right on a phone. It uses viewport-fit=cover with safe-area insets, so content sits clear of notches and rounded corners. And a small script runs before the page paints to apply the saved theme, so dark mode never flashes white on load.