Commission 02 · Rexona
Rexona Tribuna
A movement brand needed effort to be visible, so I designed an experience built around a step screenshot, an event ticket, and a human review.
World Cup 2026 · rexonatribuna.club · dashboard.rexonatribuna.club
- ≈51hfrom first commit to the first public operation
- 11contests, one per day, none carrying over
- 1/dayentry per standardized email, enforced by the data model
- 299tests across the project, 203 in the backend alone
The second phone call
The Visa project was already underway when the second brief arrived. Different agency, different brand, different game, same tournament, same deadline.
I said yes to that one too.
I want to be honest about why, because the sensible answer was no. I love this sport, and I have watched every World Cup since I was a child. The chance to build inside one does not come around often, and when it does it does not wait for you to have a comfortable schedule.
So I took the second one on top of the first, and for the week they overlapped I was building both at once. This is that second one.
Attention is easy to buy. Effort is not.
Rexona's line across Latin America is nunca te abandona, it never abandons you. The whole brand rests on movement and endurance. It is a promise about the tenth kilometer, not the first.
A World Cup hands a brand an enormous amount of attention and almost no way to spend it on that particular promise. You can buy impressions. You can run a contest where somebody taps a button and enters a raffle. None of it says anything about movement. A tap costs nothing.
The client supplied the starting idea: build an activation around how many steps fans had walked. That idea was not yet a product. I had to decide what participation meant, what counted as credible evidence, how a winner would be chosen, what fans would experience, and how an operator could run it.
The brief I took was narrower than "run a World Cup campaign." It was to build something that asked fans to move, then made that movement visible enough for a human to review. Every decision that followed came from the second half of that sentence.
I conceptualized, designed, and built the entire thing: the fan journey, the operator workflow, the UX and UI for both sides, the visual system, every screen and state, the frontend, the backend, the data model, the emails, the deployment, and the monitoring. Every detail was my decision, including how the brand colors became an interface.
What came out is rexonatribuna.club: eleven independent daily contests spread across the tournament, each running on a Tribuna Club event day from noon to 9 p.m., Bogotá time. One winner per day, one prize, and a chance to meet Richard Ríos. Days did not accumulate. Yesterday's leader started the next day at zero. The tournament is over now, so the site uses demo data. That keeps the experience visible without exposing a real entrant.
Proof, held up to a camera
On each operation day at Tribuna Club, a fan scanned the QR code at the Rexona stand and opened a short form. They entered their details and step count, uploaded a screenshot from their phone's health app, and added a photo of the ticket or proof that had admitted them to the event.
The entry appeared in the day's public ranking. An operator could then compare the claim with the submitted evidence and disqualify a mismatch before the winner was approved. The daily leader became the preselected winner for a place at a meet-and-greet with Richard Ríos, subject to the eligibility checks in the terms.
That is deliberately low technology, and the low technology is the design.
This was not forensic proof, and it did not pretend to be. A screenshot can be manipulated. A phone can be borrowed. The goal was a credible, reviewable standard for an in-person promotion: enough evidence for a human operator to compare the claimed number with the image and confirm that the entrant had access to the event.
A tap says nothing about movement. A step-count screenshot beside an event ticket gives a human something real to review.
I considered the more elaborate routes. Native step tracking would have meant an app install, health permissions, and separate platform behavior for iOS and Android. All of that would have been defensible in a fitness product. It was wrong for a noisy event floor between matches, where attention was brief and the match always came first.
A browser form, camera roll, and human review were less magical and much more usable.
Every day starts at zero
Rexona Tribuna ran as eleven independent contests. Each operation day opened at noon and closed at 9 p.m. Bogotá time. One daily ranking produced one winner; the next day began again at zero.
That reset mattered. The activation rewarded what someone could document that day, not who happened to join earliest in the tournament. It also gave every event date its own beginning, suspense, and finish.
The system used email to recognize a returning participant because the prize notification had to reach a working inbox. A cédula remained part of the eligibility record, but it did not become the database key. Before storing that key, the system standardized common variations of the same address and converted it into a one-way hash.
The precise guarantee was one entry per standardized email address per day. It was not a promise that software could identify a human being with perfect certainty. It was a concrete rule the product could enforce consistently, including common aliases that reach the same inbox.
When first place appeared last
The public leaderboard created a small but revealing problem.
The top twenty was a published snapshot, while a participant's own position was calculated live after submission. For a brief moment, those two views could disagree. A fan could be told, correctly, that they were number one while the public board was still catching up. The first version displayed their row at the bottom.
That was technically explainable and emotionally absurd.
The fix was to reconcile both sources into one coherent view. If the fresh result belonged inside the visible ranking, the page inserted it in the correct position. If identity was ambiguous because masked names collided, the interface preferred highlighting nobody over confidently pointing at the wrong person.
It was a useful reminder: eventual consistency is an infrastructure concept, but users experience it as a story. In this case the story was, “You say I am first, so why am I last?”
The email that succeeded without sending
One production failure taught an even sharper lesson.
When an operator reset and recreated a registration on the same day, its confirmation email did not arrive. The application logged no error. The email service returned success. A fresh test email from the same domain arrived immediately.
The cause was the key I used to prevent retries from sending the same message twice. The email provider remembers that key for twenty-four hours. The recreated registration reused the earlier key, so the provider returned the earlier success without sending a new email.
The system was not lying; it was answering a different question. It knew that it had already processed that key. It did not know that the second registration was a legitimate new event.
The fix was small: confirmation keys became unique to the registration, while truly one-time actions, such as a day's winner announcement, kept stable keys so a retry could resume without duplicating messages.
The larger lesson was about observability. Error monitoring cannot report a failure that every system labels as success. Delivery needs its own checks.
Designed for judgment, not decoration
The operator console placed the submitted step screenshot and ticket evidence together, where they could be assessed quickly. A mismatch could be disqualified with a clear explanation, and the next valid entry could move into contention.
The public side showed only a masked top twenty. The uploaded evidence and personal details remained private. The visual language came from Rexona's official Richard Ríos artwork: deep petrol teal, bright white, and a sharp gold accent. That made the website, emails, and console feel like parts of the same activation rather than generic software wearing a logo.
The terms and privacy notice also shaped the interface. They defined eleven separate daily contests, the evidence required, the eligibility rules, the prize process, and the data needed to operate it. Those rules became software only after they became clear as product behavior.
I would take both briefs again tomorrow.
Two days
The first commit landed at 9:22 on Thursday morning, June 25. The first public operation opened at noon on Saturday, June 27: a little under fifty-one hours later.
In that window I took the client's initial idea from a sentence to a live public experience while the Visa project was still active beside it. I used LLM Orchestrator, my system of specialized research, implementation, review, and debugging agents, to compress the feedback loop without removing verification.
By the time the project moved into portfolio mode, its three applications had 299 passing tests: 203 in the backend, 65 in the dashboard, and 31 on the public site.
That pace is why the structural decisions had to be right the first time. There was no spare week in which to discover that duplicate entries were slipping through, that the leaderboard was wrong about who was winning, or that the operator could not make sense of the evidence.
The tournament is over, so rexonatribuna.club and the operator console now use demo data. The ranking, review flow, and daily rhythm remain visible; the real participants do not.
Rexona Tribuna never needed to be a fitness app. It needed to turn a brand promise into one clear action, ask for evidence proportionate to the moment, and make the result feel fair before the next match began.
Everything I had made structural held through the tournament. The one thing that needed fixing was the one place I had been clever with a string.