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

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.

Say hello. Or don't. But say hello.

DAVE REID · ILIKEBAGELS · © 2026

Say hello. Or don't. But say hello.

DAVE REID · ILIKEBAGELS · © 2026

Say hello. Or don't. But say hello.

DAVE REID · ILIKEBAGELS · © 2026