← all work

The platform ICON Camp 2026 ran on

I was the camp’s operations director and the only developer on the app. More than 120 people used it over three days.

RoleOperations director, sole developer
Used by120+ people
Peak100+ at once
Ran5 to 7 August 2026
Size32 groups, 39 games, 67 stations

The platform tracked three things during the camp: where each group was, how many points it had, and attendance. It also handled changes to the schedule and sent notifications through a Telegram bot. Everyone used the same web app on their own phone, and saw a different side of it depending on their role.

Three kinds of user

Facilitators

The people travelling with each group.

Their group’s QR code, to be scanned at each station
Their group’s schedule and where to go next
Attendance for their group
Alerts in the app, by push notification and on Telegram
Game masters

The people running each station.

Scan a group’s QR code to record that it arrived
Declare the winner of a game
Open and close rounds on the free-roam day
Ask the committee for extra time
Organising committee

The people running the camp.

A live board of where every group is
Build and change the schedule
Scores, user accounts and an activity log
Nudge a group’s facilitators, and see who acknowledged

When a group reaches a station

01Showthe facilitator opens the group’s QR code
02Scanthe game master scans it at the station
03Recordthe arrival is stored once, even if two scans land together
04Updatethe committee’s board shows the group at that station
05Notifythe check-in goes out on Telegram

What went wrong

Before the camp, I wrote a set of concurrency tests and they found three bugs of the same kind: two actions arriving at the same moment could both go through. A group could be checked in twice, a round could take more groups than it had room for, and a group could be nudged twice. I fixed each one in the database, with a unique index or an atomic update. At the camp itself, the complaints were about a rule. The window for entering scores was strict, and some people could not enter theirs after it closed. If I did it again, I would make that window more lenient and let scores be edited easily afterwards.

Results

More than 120 people used it over the three days.
Over 100 people were on it at the same time at peak.
It did not crash during the camp.