01
Identity & invitation
The project starts from a complete visual identity — logo, graphic world — carried over onto a physical invitation. The front announces the event; the back points to the website via a QR code, the first step of the digital journey.



02
Invitation website
A state machine drives the entry sequence into a custom terminal, before moving on to the presentation and the runner sign-up form. The journey starts at the invitation’s QR code and carries the project’s visual identity through into the interface.


03
Live tracking
Each GPS position originates from Traccar Client on the runner’s phone and reaches a webhook endpoint that authenticates and validates the payload before writing it to local storage; an internal telemetry API feeds a MapLibre dashboard refreshed by regular polling.
- Automatic dropout detection on signal loss, with resumption and manual override available
- Tested end to end (authentication, validation, receipt, and display of a real GPS position) and in the field with a real GPS device before the event


04
Trailer
The official trailer was generated as an animated web experience rather than edited traditionally: a MapLibre map is driven and then captured via Playwright in a headless browser, before final encoding with ffmpeg.



05
On the ground & materials
The project’s identity carries through to the event’s physical materials, here the t-shirt worn by the runners.


06
In-between games
Beyond the race itself, an additional game layer offers individual missions and collective dynamics between runners, designed to create narrative and cooperation without ever overshadowing the sporting event. Safety, participant consent, and absolute priority to the race shape every rule; missions, protocols, and organizer documents remain private.
07
Under the hood, validation, and limits
Live tracking, the website, and the trailer share the same identity and the same mapping rather than three separate treatments. The system is built and tested: authentication, validation, and receipt of a real GPS position are covered by an automated end-to-end test, complemented by a field test with a real device before the event.
- Local JSON storage rather than a database, sufficient at the scale of a group of runners
- Regular polling rather than real-time infrastructure — a level of complexity proportionate to the size of the race
- Dashboard and storage stay local: an ngrok tunnel exposes only the entry point needed to receive GPS positions, not the full tracking interface — no permanent public infrastructure to maintain
- Invitation website and trailer generator without automated test coverage, unlike live tracking