VF ← All work
MOBILE APP · 2026 LIVE ON THE APP STORE

Mocktail
Finder

An iOS app for finding, saving and making alcohol-free drinks. I took it from a course project to the App Store — design, code and release.

ROLE
Design engineer
PLATFORM
iOS · App Store
STACK
Expo · React Native · TypeScript
YEAR
2026
{{ splash }}
01 / CONTEXT

Drinking culture changed.
The tools didn’t follow.

A growing “sober-curious” audience wants the ritual of a cocktail without the alcohol, but recipes still live in scattered blog posts, screenshots and bar menus. There was no calm, dedicated place for the alcohol-free drink.

SIGNAL 01
A ritual, not a compromise

People skipping alcohol still want a drink that feels considered: flavour, presentation and a name worth ordering.

SIGNAL 02
Recipes live nowhere

Mocktail recipes are buried in long articles and saved photos. Nothing lets you browse, filter and keep them in one place.

SIGNAL 03
Generic apps miss the craft

Recipe apps treat drinks as an afterthought: no ingredient filters, no “surprise me”, no space to add your own.

02 / PRODUCT GOAL

Find, save and create a great alcohol-free drink in under a minute.

One clear job, done simply: one friendly place to find drinks by character or ingredient, keep the ones you love, and add your own.

03 / FROM COURSE PROJECT TO APP STORE

A working app is not a product. Fourteen days closed the gap.

The course gave me a working app. The release asked for everything a course doesn’t check: real content, real data handling, real review.

2026 · COURSE
Course project

Designed and built as my final project for a React Native course: research, user goals, flows, a UI system and a working app.

Research · User goals · User flows · Architecture · UI system · Prototype · Build · Testing · Optimisation

8 SEP
Release audit

What separated a course project from a product: template app config, the default icon, a test API key, data kept only in memory, mixed languages, a 5.5-second splash, no retry when the network failed.

9–13 SEP
Release preparation

Data saved on the device, a new icon and splash, English copy throughout, safe areas and keyboard handling, error states with “Try again”, a shorter splash, a clean share format.

15 SEP
TestFlight on my iPhone

Every card had the same subtitle, and the “100+ drinks” in the copy wasn’t true. I rewrote the copy, built character tags from the ingredients, made the filters real and added photos to your own recipes. Submitted for review.

16 SEP
App Review asks for more

Common for new developer accounts. I answered the same day with a 3-minute screen recording from the iPhone and a written walkthrough.

22 SEP
Approved

Version 1.0 released in 173 countries and regions.

24 SEP
Version 1.1 released

New photos for every drink, the camera for recipe photos, edit and delete for your own recipes, and the app remembers light, dark or system theme.

14
DAYS FROM AUDIT TO APP STORE
173
COUNTRIES AND REGIONS
2
RELEASES
0
PERSONAL DATA COLLECTED
04 / MY ROLE: DESIGN ENGINEER

One person, from research to release.

I worked with Claude, Anthropic’s AI, as a build partner: Claude Code for the code, Cowork for release operations and QA, Claude Design for the App Store screenshots.

I owned the product decisions, the UX and the UI, reviewed and tested every change on the device, and ran the release myself: the Apple Developer account, the App Store Connect listing, the privacy answers and App Review.

Product
Scope for 1.0 vs 1.1.
Honest content: no inflated claims.
Private by default: no account, no data collected.
Design
UI system in light and dark.
Flows and states; App Store screenshots.
Drink photos in one studio style, generated from my own brief.
Build
React Native and TypeScript app; on-device storage.
API integration with caching.
Camera and photo library; a theme that persists.
Ship
Cloud builds; TestFlight tests on the iPhone.
App Store Connect and App Review.
Two releases in about two weeks.
05 / USER FLOW

From “I want a drink” to a saved recipe.

The main journey is short on purpose. Every entry point leads to the same recipe screen, where the drink can be saved or shared. The second path is for your own drinks.

PATH A · DISCOVER
Open app → Search by name Filter by character or ingredient Surprise me → Recipe → ♥ Save Share → Favourites
PATH B · CREATE
Add Recipe tab → Add your own (with a photo) → My Recipes → Edit / Delete
06 / INFORMATION ARCHITECTURE

Three tabs. Five screens.

The tab bar holds the three jobs. Recipe, Surprise and Edit open on top of them and close back to where you were.

TABS
Home
Favourites
Add Recipe
SCREENS
Home

Search, character and ingredient filters, featured drinks.

Recipe

Tags, ingredients, steps; save and share.

Surprise

One random drink when you can’t decide.

Favourites

Saved drinks, kept on the phone.

Add / Edit recipe

Photo, name, character, ingredients, steps.

07 / KEY SCREENS · VERSION 1.1

The product, screen by screen.

Captured on my iPhone from the 1.1 build, in light and dark.

Home screen, light theme: search, category chips, ingredient filters and a featured drink
01 · HOME
Home screen, dark theme
02 · HOME · DARK
Featured hot chocolates in the dark theme, one saved as a favourite
03 · FEATURED · DARK
Apple Berry Smoothie recipe: Berry and Fruity tags, ingredients and a preparation step
04 · RECIPE
Chocolate Beverage recipe in the dark theme with Hot, Chocolate, Spiced and Creamy tags
05 · RECIPE · DARK
Recipe screen with Add to Favourites and Share Recipe buttons
06 · SAVE & SHARE
Favourites tab with two saved drinks
07 · FAVOURITES
Add Recipe form: optional photo, name, description and up to three character tags
08 · ADD RECIPE
Add Recipe form: ingredients with amounts, preparation steps and Save Recipe
09 · ADD · INGREDIENTS & STEPS
08 / DECISIONS WHERE DESIGN MEETS CODE

Small calls that decide how the app feels.

01
Honest catalogue
PROBLEMThe copy promised “100+” drinks. The catalogue didn’t have them.
DECISIONDrop the count from the copy and put the value in quality: photos, tags, clear steps.
WHYA promise the user can check in a minute has to be true.
02
Character tags
PROBLEMThe list API returns only a name and a photo, so every card had the same placeholder subtitle.
DECISIONDerive tags (Iced, Citrus, Creamy, Sparkling…) from each drink’s ingredients.
WHYThe same tags power the filters, so one piece of data does two jobs.
03
Three-state theme
PROBLEMLight, dark and system are three states; the header has room for one button.
DECISIONA tap switches light/dark, press-and-hold goes back to following the iPhone, and a small dot shows system mode.
WHYA three-way tap would have made the everyday switch worse.
04
Readable over any photo
PROBLEMOn recipe screens the status bar and titles sat on bright drink photos.
DECISIONA short dark fade under the status bar and an opaque sticky header.
WHYText never depends on what the photo looks like.
05
Camera without surprises
PROBLEMA permission prompt out of context feels like a trap, and a declined one is a dead end.
DECISIONOne sheet (Take Photo / Choose from Library), a plain-language permission text, and a way to Settings if access was declined.
WHYThe app asks only when you reach for the camera, and you can always recover.
06
Private by default
PROBLEMA recipe app has no reason to know who you are.
DECISIONNo account, no ads, no analytics. Photos never leave the phone.
WHYThe App Store label can honestly say “Data Not Collected”.
09 / STACK AND WHY

Each tool earns its place.

Expo SDK 54 + React Native 0.81

One codebase, cloud builds (EAS Build) and direct upload to App Store Connect (EAS Submit). No hand-maintained Xcode project.

TypeScript

Catches mistakes before a build reaches the phone.

Redux Toolkit + AsyncStorage

Favourites, your own recipes and the theme stay on the device. No backend, no accounts.

React Navigation

Three tabs, with the recipe, surprise and edit screens stacked on top.

TheCocktailDB API (v2)

Curated drink data with a non-alcoholic filter. Recipe details are cached on the device for 30 days.

expo-image-picker

The iOS photo picker hands the app only the chosen photo, so no library permission is needed. The camera asks for access only when used.

TestFlight · App Store Connect · GitHub · Vercel

Testing, release and source control. Vercel hosts this site, including the app’s privacy and support pages.

Claude Code · Cowork · Claude Design

AI tools for the code, release operations and the App Store screenshots.

10 / ON THE APP STORE

Seven screenshots, one panorama.

The listing screenshots run edge to edge, so swiping through them reads as one continuous picture.

App Store screenshot 1: Real alcohol-free recipes, with photos App Store screenshot 2: Ingredients and steps. Nothing else. App Store screenshot 3: Share it in one tap App Store screenshot 4: Keep the ones you love App Store screenshot 5: Warm ones too App Store screenshot 6: Add your own, take or pick a photo App Store screenshot 7: Light or dark. Your choice sticks.
Free 4+ Food & Drink No account No ads Data Not Collected
Get it on the App Store ↗
LIKE WHAT YOU SEE?

Let’s build your product next.

Start a project →
NEXT PROJECT
Race Planner
→