← Portfolio

Mobile

Taste

A drink-generation companion for people who want ideas that feel personal — not a slot machine of random recipes.

Taste sits at the intersection of creativity and constraint: you bring mood, ingredients you actually have, dietary lines you do not want crossed, and how adventurous you feel tonight. The app’s job is to translate that into drink suggestions you might plausibly make — and that you might actually enjoy.

It is built as a native SwiftUI experience so generation, tweaking, and sharing stay fast and tactile. The hard part is not the LLM or the rules engine in isolation; it is the product layer that keeps outputs grounded, repeatable, and safe enough to pour.

01CONTEXT

Problem

Most “recipe apps” assume you already know what you want, or they throw infinite scroll at you until decision fatigue wins. On the generation side, naive prompts produce cocktails that ignore your cabinet, your limits, or the fact that you only have twenty minutes before guests arrive.

I wanted Taste to feel like a bartender friend who listens first: what you have, what you avoid, how sweet or spirit-forward you like things — then proposes a short list of directions instead of a firehose.

02PROCESS

Approach

The product architecture separates three concerns: a structured preference model (diet, strength, style, occasion), a generation layer that can be swapped or tuned without rewriting the UI, and a presentation layer that makes each suggestion scannable and editable.

On-device state and caching matter for perceived speed; the UI favors progressive disclosure so beginners are not buried in jargon while enthusiasts can still drill into substitutions, glassware, and garnish.

Iteration has been driven by real kitchen sessions: timing how long it takes from cold open to “something I would serve,” and cutting any step that does not earn its place on a small screen.

03RESULT

Outcome

Taste is the app I reach for when I want inspiration without opening five blogs or guessing whether a recipe was written for my shelf. It keeps getting sharper as I refine guardrails around generation and tighten the language so suggestions read like a human wrote them — with structure underneath so favorites and tweaks are easy to revisit.

Longer term, the direction is richer personalization (household profiles, seasonal defaults) and export flows that respect sharing without leaking private preference data.

04STACK
  • Swift
  • SwiftUI
  • Combine
  • On-device preferences & history
  • Generation / rules pipeline (details private)