DESIGNER, BUILDER & DIRECTOR OF JUDGES · ILIKEBAGELS
ATHX Runs Across Europe. So Does the Platform I Built to Run It.
ROLE
Sole Designer & Builder
TIMEFRAME
2024–2026
PLATFORM
iOS, Android, Web

01 / SNAPSHOT
ATHX Games ran international fitness competitions on printed heat sheets, WhatsApp groups, and handwritten change cards. I designed and built a full event operations platform that replaced all of it: live floor management across three simultaneous floors, a volunteer workforce system with over 3,500 people, multilingual judge training, QR check-in, and real-time change tracking. It is live on iOS and Android and runs every ATHX event.
V1–V6
BUILD ITERATIONS
3,500+
VOLUNTEERS
200+
PER EVENT
6
LANGUAGES
2
APP STORES
iOS App Store · Google Play · Base44 / React / Vite

02 / THE CATALYST
The message that made it obvious
Sent during a live event. A category change affecting lane setup, judge assignment, and scoring, communicated in a group chat with no structure, no confirmation, and no audit trail.
The handwritten change card had everything you needed: names, chip numbers, heat times, lane numbers, category flags. Filled in by hand, photographed, and shared to a WhatsApp group. That was the entire data pipeline for an international competition floor. I was the Director of Judges. I was also the person who decided this needed to change.
03 / PRODUCT EVOLUTION
Each version answered the next most urgent problem
VERSION
01
Proof of concept
Do I have enough judges?
A minimal interface to log athletes per heat and check judge numbers against the required ratio. Built fast, deployed live, validated on the floor before anything else got built on top.
Heat entry
Athlete count
Judge ratio
VERSION
02
Workforce foundations
The floor tool needed a team behind it
Volunteers were re-entering the same details on a Google Form for every event. V2 gave them a single profile: fill it in once, apply in one click. Eight roles, per-event approval gates, and approval emails in the volunteer's own language.
Single profile
8 roles
Bulk approval
VERSION
03
Full floor management
The platform goes live on the floor
Live heat display across three floors at once. Structured lane updates with four-party confirmation replacing the WhatsApp group. Pre-event judge assignments, a workforce teams dashboard giving floor leads real-time visibility, and incident reporting replacing after-the-fact recall. The version that made the platform operationally real rather than conceptually useful.
Live heat board
Lane updates
Incident reporting
VERSION
04
Check-in and kit
Built to fix a growing bottleneck
As the event grew, so did the queue. A dedicated QR check-in system built from scratch, with language support built in from the start. Two stations across multiple devices, a second scan for kit collection, and a missing-kit flow captured on the dashboard instead of on paper.
QR check-in
Kit collection
Multi-device
VERSION
05
Athlete check-in
What running it live taught us
Small changes that came from watching, not from a brief. The density toggle and list-versus-card view came from seeing staff work a busy desk under pressure.
Density toggle
List view
Feedback-driven
VERSION
06
Judge training · current
Closing the last gap before the floor
Judges needed to know the movement standards before stepping on the floor, in six languages. A full training system: movement standards with count scenarios, a quiz engine with pass/fail persisted to each volunteer's record, and an admin readiness panel showing completion across the roster before the event. The last gap between application and a judge ready to work.
Quiz engine
6 languages
Readiness panel
04 / DESIGN DECISIONS
Three decisions that show how it got built
DECISION 01
·
OBSERVED AT EVENT · CHANGED BEFORE NEXT
Density control at check-in
THE OBVIOUS FIX
The simple fix would have been to make the default check-in view more compact.
Instead I added a toggle between list and card view, because different desks had different conditions. A quiet registration point might prefer cards; a high-volume entry desk needs density.
Removing that choice from the operator would have solved my problem, not theirs.

Density control and Card View
DECISION 02
·
IDENTIFIED IN SPAIN AND FRANCE · TWO USE CASES
Language support at the desk
THE OBVIOUS FIX
Detect the user's language and switch the interface automatically.
I made it a manual toggle instead, because there were two different use cases. Non-English speaking volunteers needed instructions in their own language. But English-speaking staff also needed to flip the language on their own device, so an athlete standing in front of them could read the screen directly.
Automatic detection would have served the first case and silently broken the second.

Language selection in action
DECISION 03
·
OPERATIONAL REQUIREMENT · REPLACED THE WHATSAPP GROUP
Four-party actioned confirmation
THE OBVIOUS FIX
A single confirm button. One tap, done.
A change is only marked actioned when all four teams confirm independently: Endurance C2, Endurance race, Support Strength, and Support Metcon. Until then it stays in the pending section. Each team works at its own pace, with no dependency on any other.
One person confirming doesn't mean four teams have acted. A single button would have moved the WhatsApp problem into the app.
05 / RUNNING THE FLOOR
Replacing the box I used to stand on
BEFORE
Every judge was briefed together regardless of which floor they were working. After the brief I would literally stand on a box and separate judges out to the correct floors based on preferences expressed on the spot. No pre-assignment, no visibility into who was going where until they were already in the room. On the day, tracking who was on the floor, who was on a break, who had left, radio and memory.
AFTER
Judges set a zone preference during the application process. A few days before the event I assign judges to floors via the Judge Assignments page. Judges see their assignment on their event card before they arrive. The pre-event brief runs per floor. Judges assigned to Strength are briefed on Strength. Judges assigned to Metcon are briefed on Metcon. The brief is focused, relevant, and faster. Nobody is sitting through a briefing for a floor they will never stand on.
On event day, the Workforce Teams Dashboard gives floor and zone leads a live view of their team. The floor lead sees the judge count against active lanes and knows immediately if there is a gap, without walking the floor or calling it on radio.
06 / WHAT IT DOES TODAY
Nine problems. One platform
01
Competition Floor Management
Live heat display across Strength, Metcon, and Endurance floors. Active, Next, and Following heat tabs per floor. Lane assignment with athlete names, chip numbers, categories, and gender. Real-time judge-to-lane assignment with zone management, surplus and deficit indicators, and 15-second polling with instant update on app foregrounding.
02
Lane Updates and Change Tracking
Structured change feed replacing the WhatsApp group. Category, lane, and name changes with type badges and timestamps. Four-party actioned confirmation system. Search, filter by change type or actioned status, and a full audit trail of every change made during the event.
03
Volunteer Workforce
End-to-end lifecycle from application to event day. Single profile created once, one-click apply to any event. Over 3,500 volunteers in the database across eight distinct roles. Per-event availability, role preferences, and reserve list support. Media volunteers submit portfolios at application. Bulk approval with role assignment. Role restriction toggles per event.
04
Judge Training and Certification
Movement standards with multilingual content across six languages. Per-movement quizzes with pass/fail scoring persisted to each volunteer's record. Three UI states, not started, in progress, complete. Admin training readiness panel shows completion rates across the full roster before a judge steps on the floor.
05
QR Check-In and Kit Collection
Permanent per-volunteer QR tokens with manual entry fallback. Two separate physical check-in stations running across multiple devices simultaneously. Colour-coded confirmation screens differentiate entry check-in from kit collection. Name returned instantly on scan, no mishearing, no manual lookup. Kit sizes tracked per volunteer. Missing kit flow prompts volunteer for delivery address on their dashboard. Multi-day check-in logic for events spanning multiple days.
06
Workforce Teams Dashboard
Live team status view for floor leads and zone leads without backend access. Panels per role across all eight volunteer teams. Break management, competing status, and departure tracking. Judge count visible against active lane count for real-time gap identification. Pre-event shows wave times for competing volunteers. On event day shows a competing badge with heat time when active.
07
Incident Reporting
Structured capture form with progress indicator. Individual and witness details, injury description, actions taken, and location. Off-floor incidents with athlete lookup. Up to three media attachments per report. Outputs a fully styled HTML email to configurable recipients with colour-coded incident type and full detail block.
08
Email Template System
Rich HTML approval, reserve, and rejection email templates with ATHX branding. Per-language templates across six languages with automatic selection based on the volunteer's UI language. Compose and preview tabs with placeholder insertion. WhatsApp group links and payment form URLs per role. Full audit log of every email sent.
09
Judge Assignments and Scoring
Zone-based judge assignment with floor lead access. Volunteer self-lookup to find their floor and zone assignment before the event. Scoring appeals workflow with structured capture and review. Equipment lane management. Heat list views for registration staff. Scoring tabulation with results display.
07 / THE VOLUNTEER JOURNEY
One platform from first application to post-event
Before ATHX Active Floor, every event meant starting from scratch. A new Google Form each time, no profile, no history. I built the single profile system first, because without it the platform would have inherited the same re-entry friction it was meant to replace. The platform now manages over 3,500 volunteers, a single profile each.
01
Creating a profile
Volunteers create a single profile once. Personal details, sizing, experience, and preferences are stored and carry forward to every event they apply for.
02
Applying to an event
From the events listing, applying takes one click. The platform already has everything it needs. Once approved, the volunteer's event card becomes their hub for everything that follows.
03
The event card
Before the event the card surfaces everything in one place: the WhatsApp group link for their role, the workforce pack, and for judges a zone preference selector that feeds directly into the pre-event assignment process. Volunteers can update their availability, log the time they are competing if they are also an athlete, or withdraw from the event, all without messaging anyone. I deliberately kept all of this on one card rather than spreading it across separate screens. A volunteer arriving for an event at 06:30 should not have to navigate to find basic information.
04
Training (Judges)
Judge volunteers complete movement standard training and pass a quiz before the event. Three states, not started, in progress, complete, are visible to admins in the training readiness panel. Available in six languages. Completion is persisted to the volunteer's record and visible to the admin team before the event.
05
Assignments (Judges)
A few days before the event judges are assigned to their floor and zone via the Judge Assignments page. They see their assignment on their event card before they arrive. When they turn up for the pre-event brief they already know which floor they're on. Briefings run per floor, judges for Strength hear the Strength standards, judges for Metcon hear the Metcon standards. Nobody sits through content that doesn't apply to them.
06
On the day, entry check-in
The volunteer presents the QR code from their event card. Staff at the entry desk scan it, the system confirms check-in, and the volunteer receives their wristband and moves into the venue. Previously this was a manual lookup on a Google Sheet. Two separate physical check-in locations run across multiple devices simultaneously, no single queue, no bottleneck.
07
Kit collection
At a separate station staff scan the volunteer's QR code a second time. The system returns their name instantly, no mishearing, no struggling with unfamiliar names from international volunteers. Staff collect the correct kit and mark it as collected. I chose to return the name rather than just a confirmation screen because the kit collection desk is working fast and can't afford to ask someone to repeat themselves. If kit is unavailable staff mark exactly what is missing. The volunteer receives a prompt on their dashboard asking for their delivery address. Kit is sent directly. No pen and paper. No chasing people after the event.
08
Post event
The event card allows volunteers to request a discount code for future ATHX events. Generated and delivered through the platform. No separate form, no manual process. The full loop closes in the same place it opened.
08 / RETROSPECTIVE
What changed for the people using it
Dave has created something that has not only professionalised our workforce system, but also built a genuine community platform. The system continues to evolve in real time, with functionality constantly adapting alongside the growth of ATHX. Much like ATHX itself, the app is rapidly becoming the central platform for both our workforce and wider community.
Jodie Rocket
Head of Events and Partnerships · ATHX
The live lane assignments and athlete data has made running event floors straightforward and stress free. With athlete numbers and specific data all in my hand, coordinating heats and judges becomes simple. Having the option to inform other floors of incoming changes effectively eliminates the miscommunication that can plague other events.
Sophia Herne
Head Judge · ATHX
Athlete support are now checking in athletes across two tablets simultaneously, and the chip timing team are doing the same. It's so much quicker. Any new system takes a run or two to bed in, but when we use it and tweak it, it'll only get better.
Paula Cairey
Athlete Support and Bag Drop Lead · ATHX
The app has made volunteering hassle free, with all the training, payments and vouchers in one place. The interactive training for standards means I can go into event weekend knowing I'm fully prepared and focus on enjoying the experience with my friends.
Amy
Volunteer · ATHX
09 / WHAT I LEARNED
What I learned
This project taught me things I couldn’t have learned any other way. Designing something you also operate changes how you think about every decision. When you’re the one standing on the floor at 06:30 watching people use what you built, the gap between ‘this makes sense in Figma’ and ‘this works under pressure’ becomes very obvious very quickly.
The check-in density toggle came from watching, not from asking. The language use cases came from being in Spain and France and seeing where people hesitated. The four-party confirmation came from understanding the operational structure well enough to know that a single confirm button would have created a false sense of resolution.
If I were starting over I would build the check-in system earlier. The bottleneck was there before V4 and I underestimated how much it mattered. I would also have introduced the training readiness panel to admins sooner, because visibility into judge preparation before an event is something the team needed long before V6 gave it to them.
10 / IMPACT
The numbers that matter
3
Simultaneous competition floors
3,500+
Volunteers in the database
6
Languages across training and UI
4×
Confirmations before a change is actioned
2×
Check-in throughput, both operators working independently
10 / HOW IT'S BUILT
Built to change at 6am on event day
Built on Base44 with a React and Vite frontend, web-first with iOS and Android shells via WKWebView. Web updates deploy to installed apps without an App Store or Play Store resubmission. That matters on event day, when something needs to change at 6am and the first heat is at 9. I've been in that situation. The architecture meant I could fix it in minutes rather than waiting for a review cycle.
Base44
Quill rich text
Inline HTML email
html5-qrcode
qrcode.react
Android WebView
iOS WKWebView
Tailwind CSS
React / Vite

iPad in hand, mid-event: briefing judges, about to go test athlete check-in myself.