AS

AS

Building an intelligent recipe tool built to personalize cooking

AI Exploration: Designing Trust in AI-Generated Recipes

AI Exploration: Designing Trust in AI-Generated Recipes

Sabor, a live mobile app, adapts recipes in real time based on ingredients, preferences, and skill level

Balancing personalization and safety through visible and invisible design

Role + Team

Sole Product Designer and Developer

Timeline

Initial Exploration: Summer 2023 (8 weeks)

Production Build: Winter 2025 (4 weeks)

Total development: 12 weeks across 18 months

Tools Used

Designed in Figma, Built with Next.js + Tailwind + Supabase, Powered by Gemini API, Deployed on Vercel

Essential Goal

Design and build cooking tool that adapts to each cook’s creativity, taste, and culture while protecting user trust, control, and safety

AI Exploration: Designing trust in

AI-generated recipes

Role + Team

Sole Product Designer and Developer

Sole Product Designer and Developer

Timeline

Initial Exploration: 8 weeks

Production Build: 4 weeks

Tools Used

Designed in Figma, Built with Next.js + Tailwind + Supabase, Claude Code, Powered by Gemini.

Project Goal

Design and build a personalized AI recipe tool that protects user trust, control, and safety

Overview

Overview

SABOR is a cooking tool that tailors recipes to fit a cook's needs, born out of the challenge of navigating allergies, portion sizes, and preferences when cooking the dishes we love.

SABOR is a cooking tool that tailors recipes to fit a cook's needs, born out of the challenge of navigating allergies, portion sizes, and preferences when cooking the dishes we love.

SABOR's design is two-fold, consisting of the visible and the invisible

SABOR's design is two-fold, consisting of the visible and the invisible

The visible: AI UI

The visible: AI UI

How do we earn the trust of the user?

How do we earn the trust of the user?

The invisible: Prompt Design

The invisible: Prompt Design

How do we design a trust-worthy algorithm?

How do we design a trust-worthy algorithm?

YOUR PURPOSE: 

You are a trustworthy recipe assistant. 
Your job is to help people connect with 
recipes they want to make. 
You are honest, grounded, and never pretend 
to know something you don't.


YOUR PERSONALITY: 

- Friendly and encouraging, like a helpful 
cooking buddy
- Warm but professional, people trust you 
with food safety
- Enthusiastic about food without 
being preachy
- Never condescending; supportive 
of all skill levels
- Culturally respectful when discussing 
cuisines from other regions


USER REQUEST RESPECT

- The user has requested a SPECIFIC recipe. 
You MUST generate EXACTLY that recipe, 
not a substitute.
- Do NOT reinterpret or suggest 
alternatives unless explicitly asked.
- If user says "taco chicken 
hoagie", the recipe MUST BE a taco chicken hoagie.
- If user says "chocolate 
cake", the recipe MUST BE a chocolate cake.
- Match the user's request 
as literally and faithfully as

Sabor has five key features that support the human-AI co-creation of a safe, delicious recipe.

Sabor has five key features that support the human-AI co-creation of a safe, delicious recipe.

Sabor's Key Features

1

Recipe Sourcing + Social Proof

Earning the user's trust in the generated recipes through source citations showing how the recipe was created

2

In-Context Recipe Editing

A novel interaction for workshopping a recipe, users may:

adjust serving size

adjust ingredient quantities

remove ingredients

ask for ingredient suggestions

3

Version History

Making recipe changes transparent for trust and confidence

4

Sabor Onboarding + Profile Creation

Constantly learning from the user's preferences

Sabor's Key Features

1

Recipe Sourcing

+ Social Proof

Earning the user's trust in the generated recipes through source citations showing how the recipe was created

2

In-Context

Recipe Editing

A novel interaction for editing and workshopping a recipe,

users may:

-adjust serving size

-adjust ingredient quantities

-remove ingredients

-ask for ingredient suggestions

3

Version History

Making recipe changes transparent for trust and confidence

4

Sabor Onboarding + Profile Creation

Constantly learning from the user's preferences

Overview

SABOR is a cooking tool that tailors recipes to fit a cook's needs, born out of the challenge of navigating allergies, portion sizes, and preferences when cooking the dishes we love.

SABOR's design is two-fold, consisting of the visible and the invisible

The visible: AI UI

How do we earn the trust of the user?

The invisible: Prompt Design

How do we design a trust-worthy algorithm?

YOUR PURPOSE: 

You are a trustworthy recipe assistant. 
Your job is to help people connect with 
recipes they want to make. 
You are honest, grounded, and never pretend 
to know something you don't.


YOUR PERSONALITY: 

- Friendly and encouraging, like a helpful 
cooking buddy
- Warm but professional, people trust you 
with food safety
- Enthusiastic about food without 
being preachy
- Never condescending; supportive 
of all skill levels
- Culturally respectful when discussing 
cuisines from other regions


USER REQUEST RESPECT

- The user has requested a SPECIFIC recipe. 
You MUST generate EXACTLY that recipe, 
not a substitute.
- Do NOT reinterpret or suggest 
alternatives unless explicitly asked.
- If user says "taco chicken 
hoagie", the recipe MUST BE a taco chicken hoagie.
- If user says "chocolate 
cake", the recipe MUST BE a chocolate cake.
- Match the user's request 
as literally and faithfully as

Sabor has five key features that support the human-AI co-creation of a safe, delicious recipe.

Sabor's Key Features

1

Recipe Sourcing + Social Proof

Earning the user's trust in the generated recipes through source citations showing how the recipe was created

2

In-Context Recipe Editing

A novel interaction for workshopping a recipe, users may:

adjust serving size

adjust ingredient quantities

remove ingredients

ask for ingredient suggestions

3

Version History

Making recipe changes transparent for trust and confidence

4

Sabor Onboarding + Profile Creation

Constantly learning from the user's preferences

Sabor's Key Features

1

Recipe Sourcing

+ Social Proof

Earning the user's trust in the generated recipes through source citations showing how the recipe was created

2

In-Context

Recipe Editing

A novel interaction for editing and workshopping a recipe,

users may:

-adjust serving size

-adjust ingredient quantities

-remove ingredients

-ask for ingredient suggestions

3

Version History

Making recipe changes transparent for trust and confidence

4

Sabor Onboarding + Profile Creation

Constantly learning from the user's preferences

Problem + Research

Problem + Research

Sabor's foundational strategy is based off of three rounds of generative and evaluative research with 15 cooks, which informed the value-add and AI interaction patterns I needed to design for.

Sabor's foundational strategy is based off of three rounds of generative and evaluative research with 15 cooks, which informed the value-add and AI interaction patterns I needed to design for.

Sabor's foundational strategy is based off of three rounds of generative and evaluative research with 15 cooks, which informed the value-add and AI interaction patterns I needed to design for.

Generative Research

Generative Research

Generative Research

Understanding the biggest pain points of modern cooking through 5 user interviews, and leverage a JTBD framework to synthesize.

Understanding the biggest pain points of modern cooking through 5 user interviews, and leverage a JTBD framework to synthesize.

Understanding the biggest pain points of modern cooking through 5 user interviews, and leverage a JTBD framework to synthesize.

1

1

Cultural recipes are difficult to replicate in taste.

Cultural recipes are difficult to replicate in taste.

Cultural recipes are difficult to replicate in taste.

2

2

Cultural recipes don’t fit into my lifestyle, such as my dietary preferences and resources.

Cultural recipes don’t fit into my lifestyle, such as my dietary preferences and resources.

Cultural recipes don’t fit into my lifestyle, such as my dietary preferences and resources.

3

3

Cultural recipes are often inaccessible; whether in resources and or ingredient preparation.

Cultural recipes are often inaccessible; whether in resources and or ingredient preparation.

Cultural recipes are often inaccessible; whether in resources and or ingredient preparation.

user JTBD

As a user.....

As a user.....

I want to save recipes and workshop them later

I want to save recipes and workshop them later

I want to edit a recipe without the fear of making mistakes

I want to edit a recipe without the fear of making mistakes

I want to customize a recipe to my dietary needs without lengthy research

I want to customize a recipe to my dietary needs without lengthy research

I want to modify a recipe’s nutrition to achieve my goals without lengthy research

I want to modify a recipe’s nutrition to achieve my goals without lengthy research

I want straightforward, ingredients and instructions that I can reference on the go

I want straightforward, ingredients and instructions that I can reference on the go

I want tips that I might not know to ask for

I want tips that I might not know to ask for

user JTBD

While Sabor began as a solution for cooking cultural meals, it evolved to all type of home-cooked meals as the pain points discovered were consistent across all types of cooking.

While Sabor began as a solution for cooking cultural meals, it evolved to all type of home-cooked meals as the pain points discovered were consistent across all types of cooking.

Evaluative Research

Evaluative Research

Evaluative Research

Understanding how to design key interaction patterns through 2 rounds of 45-minute contextual inquiries and usability tests, for a total of 10 testers.

Understanding how to design key interaction patterns through 2 rounds of 45-minute contextual inquiries and usability tests, for a total of 10 testers.

Understanding how to design key interaction patterns through 2 rounds of 45-minute contextual inquiries and usability tests, for a total of 10 testers.

Some of the first insights that guided the UI of the app

Some of the first insights that guided the UI of the app

Design Iterations

Design Iterations

Sabor's interface went through four major iterations. The key novel interaction, in-recipe editing, evolved through research insights and implementation constraints.

Sabor's interface went through four major iterations. The key novel interaction, in-recipe editing, evolved through research insights and implementation constraints.

Sabor's interface went through four major iterations. The key novel interaction, in-recipe editing, evolved through research insights and implementation constraints.

Four Iterations of Feature 2: In-Context Recipe Editing

Four Iterations of Feature 2: In-Context Recipe Editing

Four Iterations of Feature 2: In-Context Recipe Editing

Version 0:

Very Early Wireframing

(No testing, only foundational interviews)

Version 0:

Very Early Wireframing

(No testing, only foundational interviews)

Version 3~ :

Post Heuristics Analysis +

Initial Usability Testing

Version 3~ :

Post Heuristics Analysis +

Initial Usability Testing

Version 30~ :

Post Initial Development +

2nd Round of Usability Testing

Version 30~ :

Post Initial Development +

2nd Round of Usability Testing

Live MVP (Version 35~ )

Post Development Constraints +

Initial Contextual Inqueries

Live MVP (Version 35~ )

Post Development Constraints +

Initial Contextual Inqueries

Four key decisions informing Sabor's visible and invisible design

Four key decisions informing Sabor's visible and invisible design

Decision One: Designing for Trust

Recipe Generation is the first interaction users have with Sabor, so it needs to earn their trust that Sabor is reliable.

The Tension

When a user asks for a recipe, should Sabor prioritize honoring the user's request as closely as possible or returning a recipe with speed?


Specifically, should Sabor return a fully personalized, potentially inaccurate (slower) AI-generated recipe result OR a potentially less personalized, accurate stored (faster) recipe?

Option

Pro

Con

Always AI-generated

Very personalized

Latency and room for error

Always matched from database

No latency and tested accuracy

Possibly less personalized

The Decision

Prioritize personalization and generate a new recipe unless we are 90%> confident a stored recipe is a match.

Visible AI UI

Invisible Prompt Design

User searches a recipe

Sabor searches the saved recipes database for a match with 90% confidence

Finds a match?

YES

NO

Return stored recipe

(potentially less personalized, instant)

Generate new recipe

(personalized, slower)

Decision Two: Designing for Control

Sabor's primary value-add is recipe customization. Users can customize almost all parts of a recipe on the recipe itself: servings can be adjusted and ingredients can substituted, removed, or adjusted.

The Tension

When a user is editing a recipe, should we prioritize user control over the recipe or system control over the recipe's integrity?

Option

Pro

Con

Full freedom

(edit all parts of a recipe)

Maximum personalization

Users could break the recipe or create unsafe combinations

Limited editing

(edit only certain fields)

Protects users from mistakes

Might feel restrictive and decrease the value of the app

The Decision

Protecting user cognitive load and safety is tablestakes. Limit what a user can edit in a recipe, to prioritize robust edit parameters and decrease the likelihood of hallucinations.

Visible AI UI

Invisible Prompt Design

A code snippet from the 'adjust ingredient quantity' backend:

When adjusting ingredient quantities, 
ensure: 

- Spice levels remain safe 
(don't make it dangerously spicy)
- Cooking times remain accurate for the 
adjusted portions 
- Ingredient ratios don't create unsafe 
combinations 
- Allergen warnings are preserved

Decision Three: Designing for Latency

When generating and editing a recipe, the user will face latency, but with too much Sabor might lose its convenience value-add.

The Tension

How do we balance providing a seamless UX and minimal latency?

Specifically, should Sabor minimize the number of steps or minimize perceived latency?

Option

Pro

Con

Minimize steps

Less steps

Longer latency and more risk of time-outs

Minimize latency

Shorter latency

More steps

Scenario: The user removes a critical ingredient from the recipe

Option A: Less steps, longer latency

User chooses to remove ingredient

Sabor processes removal impact AND generates substitution options

(10 second wait time)

(SABOR BLOCKS)

(SABOR BLOCKS)

Sabor shows substitutes

User cancels,

keeps original recipe

User chooses substitute

Sabor substitutes ingredient,

returns New Recipe

(5 second wait time)

Option B: More steps, shorter latency

User chooses to remove ingredient

Sabor processes removal impact

(5 second wait time)

User previews impact

(SABOR BLOCKS)

(SABOR BLOCKS)

User confirms substitutes

User cancels,

keeps original recipe

Sabor gets

substitutes, shows

(5 second wait time)

User chooses substitute

Sabor substitutes ingredient,

returns New Recipe

(5 second wait time)

The Decision

Minimize latency at the cost of more steps. Three shorter steps with feedback feels faster than one long wait. This also gives users more control on when they will see latency and why.

Visible AI UI

When a user tries to remove a critical ingredient, a task that requires multiple steps to evaluate, include pauses into the process for the user to confirm the action

Invisible Prompt Design

A code snippet of the AI evaluating whether an ingredient is safe to be removed:

Warn user if removing a critical safety 
ingredient (e.g., salt in preservation recipes, 
leavening agents in baked goods) 

NEVER allow removal of ingredients 
if it would create unsafe food 

If removal compromises food safety, 
explain and suggest alternatives 

Preserve allergen warnings even if 
main ingredient is removed

Decision Four: Ensuring Safety through Architecture

Sabor is a recipe app, making mistakes especially dangerous. As such, I built safety checks at two levels - code validation and prompt guardrails - so the AI alone isn't responsible for user safety.

How Safety is Layered in the System

User searches a recipe

Sabor validates search with hard-coded filters

FAILS FILTERS

PASSES FILTERS

Sabor blocks recipe

AI + Prompt Guardrails

IF UNSAFE

Gemini blocks recipe, redirects

Visible AI UI

Redirect the user when an unsafe choice is made, whether it be an unsafe explicit query or an unsafe implicit one (ie search for something they may be allergic to)

Invisible Prompt Design

Implement safety architecture inside of every API call

Layer One: Hardcoded Input Validation

// Hardcoded safety validation for Sabor 
//- no AI required

// These filters run BEFORE any API 
//call to protect users

// Dangerous raw/undercooked preparations
const UNSAFE_RAW = [
  "raw chicken", "raw pork",
"undercooked pork", "raw ground beef"];

Layer Two: Prompt behavior for nuanced safety decisions

1. NEVER suggest poisonous, 
toxic, or harmful ingredients as substitutes 

2. NEVER create unsafe ingredient combinations 

3. Only suggest substitutes that maintain 
food safety standards

4. Preserve cooking methods - 
don't suggest raw substitutes for 
cooked ingredients

Takeaways

Takeaways

If I could build Sabor again, I would think more rigorously about design for observability from day one.

I designed Sabor to personalize and workshop recipes while maintaining food safety. While Sabor's UX fills the intended function, testing it's outputs revealed a gap in safety. I realized that I could not safely validate recipes because I could not guarantee the algorithm would not hallucinate.


If I were to build Sabor again, I would intentionally build in more safety mechanisms and metrics. I would start off with two questions.

Metric 1

Metric 1

When and how often are recipes hallucinating?

I would measure hallucination rates through constant accuracy tests on recipe ingredients, substitutions, and sources. I would also track user feedback: specifically, adding in the option for users to report mistakes.


To mitigate these, I would implement a RAG system, consisting of a database of what food edits are permissible and safe.


This is important because minimizing hallucination rates is critical to maintain user safety and trust.

Metric 2

Metric 2

Does the 90% routing threshold serve user needs?

I built in a 90% threshold when the algorithm is deciding whether to make a brand new API call or show a recipe from the database.


I would measure the behavioral cue of how often a user re-does the search and downvotes a recipe. I would build in a feature to let the user report an inaccurate generation, specifically.


This matters because if our recipes do not feel personalized or convenient, Sabor loses its value proposition.

Thank you for reading!

Thank you for reading!

Thank you for reading!

I am currently working on sharing more of my experience building SABOR and will update this case study soon. In the meantime, feel free to explore Sabor here:

Thanks for stopping by!

Thanks for stopping by!

Thanks for stopping by!