← Back to work

Founder · 2024 – now

21Meals

You have a fridge full of ingredients and no idea what to make with them. 21Meals takes what you actually have, plus what you actually like, and gives you a week of meals and the grocery list to go with it, so the deciding is done before you're standing in the kitchen at 7pm.

RoleFounder, solo build
TimelineApr 2024 – present
StackReact Native (Expo), Python, SQL, generative AI APIs
StatusIn development / Published MVP
60,000+site hits
30+countries reached
600users

The problem

As an avid cook, I was tired of looking in the fridge and not knowing what to make. I wanted to find recipes that were quick and easy to make, and that I would actually enjoy eating without having to spend time researching and planning.

What I built

I built an app that allows you to type in ingredients, as well as other preferences you have, and generate a list of recipes that you can make with those ingredients. This is evolving into a meal planning app that will allow you to plan your meals for the week, and generate a shopping list of the ingredients you need to buy.

  • Built a cross-platform meal-planning app in React Native (Expo SDK 57) with Expo Router, using file-based routing across 8 screens (auth, onboarding preferences, daily plan, weekly editor, recipe detail) and a React Context provider for cross-screen user session state, replacing brittle URL-param passing.
  • Integrated a REST backend for AI-generated weekly meal plans, wiring 11 endpoints (auth, preference persistence, plan generation, per-day meal fetch, recipe lookup, grocery-list and favorites sync) with optimistic local state updates, loading/error handling, and a meal-swap flow that reconciles the edited plan back to the server.
  • Designed and implemented a reusable design system: centralized color/shadow/typography tokens plus composable primitives (gradient canvas with layered blur "blooms", elevated cream cards, focus-ring inputs, spring-scale pressables, staggered fade-and-rise entrance animations), so every route renders from one visual language instead of per-screen ad-hoc styles.
Five 21Meals app screens: the daily plan with breakfast, lunch and dinner cards; a recipe detail page with ingredients and steps; the meal-replacement sheet; the weekly overview; and the generated grocery list.

What happened

The web app reached 600 users, spread across six continents. A much wider reach than I expected for something I built to solve my own problem.

What that traffic made clear is that generating a single recipe was the easy half. People came back wanting the whole week planned, which is why the mobile app is built around the plan rather than the recipe: the weekly overview, the swap flow for the days you change your mind, and the grocery list that falls out of both.

I’m building that mobile app now, with a Tsai CITY funding grant from Yale to help develop it.