adriaaan

Software Engineer

Portfolio

Nomwhere

A mascot-led group dining app that helps crews stop debating and start deciding with real-time sessions, curated restaurant discovery, and resilient mobile flows.

Mascot system

Nomwhere turned the decision loop into a branded character moment.

The Nomwhere mascot acts as a guide across onboarding, empty states, and group-decision moments.

Nomwhere hangry mascot holding a fork and spoon

Nomwhere is a mobile app for groups that get stuck in the same loop: everyone is hungry, nobody wants to choose, and the decision stalls before the meal even starts. I rebuilt the experience around a faster social flow, giving crews a shared place to discover restaurants, join a live session, and converge on one answer without the usual back-and-forth.

What changed in the product

The earlier version was framed as a swiping app. Nomwhere is broader and sharper: it combines discovery, crew coordination, and session-state management into one mobile experience. The current product shape includes:

  • a Discover surface for nearby restaurant browsing
  • live group sessions for lobby, swipe, voting, and results
  • crew and friends flows for bringing the right people into a decision
  • profile and history areas that support repeat usage instead of one-off novelty

Core functionality

  • Built a real-time session system on Supabase for join codes, participant presence, live phase transitions, and synchronized voting.
  • Designed the mobile client around resilient session recovery, local persistence, and offline-friendly behavior so a dropped connection does not collapse the group flow.
  • Integrated restaurant search through a Supabase edge-function proxy over Google Places, then layered ranking and curation on top for better group-fit results.
  • Added friend and offline-profile flows so users can shape restaurant decisions around the actual people involved, not just a single account.
  • Shipped bilingual foundations with i18next for English and Spanish across the main product surfaces.

Product and systems work

I treated the app as both a UX problem and a state-management problem. The product needed to feel faster and more playful, but the underlying session engine also had to survive retries, reconnects, and multi-user coordination. That meant tightening the edge between Expo Router screens, React Query data flow, Supabase Realtime subscriptions, and persistence layers that could recover context when the device or network state changed.

The current direction also makes the brand do real work. The mascot is used as a guide across onboarding, session moments, and feedback states so the interface feels opinionated and cohesive instead of generic. That gave the product a recognizable identity without adding ornamental noise.

Outcome

Nomwhere now reads as a more complete product: a restaurant decision system for groups, not just a card-swiping prototype. The portfolio story is less about one interaction pattern and more about the combination of collaboration design, mobile reliability, and brand systems required to make the app feel ready for repeated use.

Back to top →