SnackSage began as a class intervention on sustainable lifestyles: three quick, unprocessed snacks from what's already in your kitchen, at the moment a craving would turn into a delivery order. The April 2025 prototype tested well with peers, but on 24 fixed test requests it showed 17 recipes that broke the user's own filters. The October 2026 rebuild checks every recipe twice and shows none.
One tap from delivery.
Impulse snacking comes from too little time, a hard day and processed food a delivery app away, at a cost in carbon, health and waste. Hirth and colleagues (2023) count habits like it among the structural barriers to 1.5°C lifestyles. For Raz Godelnik's Sustainable Business Models class at Parsons, I set out to put a quick, unprocessed alternative in front of that craving, made from what you already have.
Ten testers, two rounds. I built it on Replit with GPT-4 in April 2025: type what you have, swipe through three snack ideas, save the ones you like. Two rounds of testing with 10 classmates and peers found typing tedious, the images pointless and the diet controls unclear, so suggestion chips and pasting a list came in and the images went.
I called it a qualified success. But an alternative only works if you can actually eat it, and that's where it fell short.



The filters didn't filter.
In October 2026 I had it reviewed and tested by hand. Pick Nut-Free and it handed you peanut butter bites labelled Contains Nuts. The server never read the filters, and the badges were guesses made in the browser: eggplant set off the egg warning.


The model writes, the server decides. The model is asked for unprocessed snacks, with your filters as hard rules, and returns each recipe with its diets and allergens. Then the server checks every ingredient line against sourced term lists for 9 allergens and 4 diets. A recipe that fails is never shown. An ingredient you listed that breaks a filter is left out, and the deck says so.
The pass rule was fixed before any run was read and never moved. It carries the original bet: a passing recipe uses something from your kitchen, in 3 steps or fewer.
17 of 72 recipes broke a filter
TakenThe card lists the filters it checked and asks you to read product labels.
RejectedAny promise about what a recipe means for an allergy.
TakenThe server's check decides.
RejectedTrusting the model's own tags.
Typing was the friction. The 2025 testers found it tedious, so the rebuild gives you three ways around it: one-tap Quick add, a sentence the model reads ("some PB and oats"), and a photo of your fridge that becomes a list you fix before generating.
On 10 public-domain photos, gpt-6-luna found 81% of the visible items to Claude Haiku 4.5's 51%. The photo is used once and never stored.



Short screens, no pictures. Using the app on my iPhone showed the first layout assumed more height than a phone browser leaves. Now each screen pins one action bar, and a card gets denser only when it would run under it.
There are no food pictures. The 2025 testers saw nothing in them, and the illustrations tried in the rebuild weren't worth their cost.


01 · Flavor and timeSweet, Savory, Crunchy, Spicy, Fresh or Cold, and the minutes it takes.02 · CHECKED stampOpens the list of filters this recipe was checked against.03 · Allergen warningNames what the recipe contains before you read the ingredients.04 · From your kitchen, to getA filled dot is something you have. An empty one you'd need to get.05 · Labels lineEvery card says "Generated by AI. Check product labels."Lemonade, Bubblegum, Salad bowl, Orange soda, Midnight snack and Popcorn. Lemonade is the default on a light device, Midnight snack on a dark one.

TakenNo images. Type, chips and tags carry each recipe.
RejectedA toy-dish illustration on every recipe.
Mine, start to finish.
Looking back
A snack app doesn't change what people eat. At best it nudges. The 2025 testing showed the barrier isn't information. It's decision fatigue, emotional eating and convenience in a tired moment, and even typing ingredients was enough friction to lose someone.
The check is only partly mine to give. I can build the scaffolding around the model, the server's check and its term lists, but not what the model writes, so every card still says to check product labels.
The short screens were my miss. I made the screens in Claude Design and assumed the code would handle a short phone. Drawing them by hand, I'd have planned for it.
What the rebuild does for anyone's snacking I can't say yet. When I wrote this there was no usage data, and accounts wait until it shows people coming back.
