← All work

Updone: keeping a marketplace's money where it belongs.

An event-staffing marketplace where clients hire vetted bartenders, waiters and event staff. I designed the chat both sides live in, and the guardrails that stop deals leaking off-platform.

Role
Product design: flows & systems
Scope
Chat system (7 iterations), guardrails
Product
Two apps: ClientHub & TalentPro
Context
Launched on Product Hunt; 2.0 shipped 2026
01 / The problem

Chat is where the deal happens, and where it escapes.

Updone connects event hosts with vetted hospitality staff: bartenders, cocktail servers, waiters, event helpers. Once a client and a bartender start talking, the natural next move is "here's my number, let's sort it on WhatsApp." Every time that happens, the platform loses the booking fee, and both sides lose the protection: vetting, payment security, recourse if someone no-shows.

So the brief was really two briefs. Make chat good enough that people want to stay in it. And make leaving it genuinely harder, without treating users like suspects.

Updone chat flow, client and talent sides
Chat flow v7, spanning ClientHub (hiring side) and TalentPro (staff side).
02 / Decisions

Friction is a design material. Dose it.

Guardrails fail in two directions. Too soft and the leak continues. Too hard and legitimate conversations break: an address for the venue looks a lot like an address for a meetup. Seven iterations of the chat flow were mostly about tuning this dose.

Warn first, block second, never silently delete.
Tradeoff: a visible warning tips off bad actors to rephrase. But silent removal destroys trust for honest users who think the message sent, and confusion costs more support tickets than circumvention costs fees.
Make staying in-platform the convenient path, not just the enforced one.
Tradeoff: booking actions, payment status and event details live inside the thread, which crowds the chat UI. Worth it: the moment a user has to leave chat to do the thing, WhatsApp wins.
One chat spine, two apps.
Tradeoff: ClientHub and TalentPro have different jobs (hiring vs getting hired), so one shared flow means each side carries a little of the other's weight. The payoff is that a conversation always mirrors perfectly on both ends: nobody sees a different truth.
03 / Try it

The guardrail, live.

A working reconstruction of the guardrail logic. Type a normal message and it sends clean. Try slipping in a phone number, an email, or "WhatsApp me": watch how the system responds. This is the warn-first pattern from decision one.

Live rebuild

Chat with Marcus (Bartender · 4.9 ★)

Interactive reconstruction of Updone's guardrail pattern. Not the production app.
Hey! Saw your event on Saturday, happy to bartend. Anything specific you need?
⚠️ Sharing contact details moves your booking outside Updone's payment protection. Details are hidden until the booking is confirmed.
04 / The system

Guardrails beyond the regex.

Pattern-matching numbers is the easy layer. The design work was the full path: what the sender sees, what the receiver sees, how a message is held for review, when a repeat attempt escalates from a warning to a temporary chat hold, and how a false positive gets appealed without a support ticket.

The updated guardrails shipped as a coordinated release across both apps.

Updone guardrail flow states
Guardrail states: clean send, warn, mask, hold, escalate.

What I'd push next

  • Measure leak rate honestly: bookings that go silent after heavy chat activity are the proxy metric worth instrumenting.
  • Reward the compliant path: staff who keep bookings on-platform earn ranking weight, which makes the guardrail an incentive, not just a wall.
  • Voice notes and images are the next leak vector. The same warn-mask-hold ladder needs to extend to media.
Next case study
Acre AI → making land comps legible