2026 · Solo developer

Pickleball Queue

A simple queue management system for pickleball courts, allowing users to reserve time slots and view available courts.

Vue3TailwindIndexedDBNeDBNode.js
Pickleball Queue dashboard

Problem

Open-play pickleball sessions get chaotic fast. Organizers juggle who's waiting, who just played, and who's partnered with whom, often from memory or a whiteboard. Players who wait longest get skipped, the same pairs keep teaming up, and courts sit empty while the next match is sorted out.

Approach

I built a queue manager for the Picklebwag Club that runs the whole session: players, courts, match queuing, scoring, and leaderboards. At its core is a single queue algorithm used by both manual and automatic match generation. It sorts players into a clear priority order (fresh players first, then winners, then losers), tracks wait times so whoever has waited longest plays next, and avoids repeating teammates. After an early lane-based design proved fragile, I replaced it with a simpler priority-sorted loop that turned out more reliable. Courts can be added or removed mid-session, and pop-out views for courts, the queue, and a public board stay in sync across browser tabs. It's a single-file Vue 3 and Tailwind app, with a Nuxt 3 version that adds server-side session storage. It also includes dark and light themes, including one based on the club's own logo colors, WCAG AA contrast, and a passcode gate on manual match overrides.

Result

Organizers can run a full open-play session from one screen, with matches generated automatically as courts free up and every player rotated through fairly. The club gets a branded tool that works on phones, tablets, and desktops.