Inspiration
I was standing in a grocery aisle looking at a "healthy" protein bar. I turned it over and saw 20 ingredients I couldn't pronounce.
That was the moment. I realized that while food marketing is smart, most of us are just guessing what we eat. I didn't want to manually Google every chemical code while standing in the store. I wanted a tool that just knew.
What it does
GoodOrBad is an AI-powered food decoder. It simplifies nutrition into a clear verdict.
- Visual Scan: Users snap a photo of the ingredient list to detect hidden additives.
- Barcode Scan: Users scan a barcode to fetch data instantly via Google Search.
- The Verdict: The app detects hidden sugars, dangerous additives, and allergens, giving a simple safety score and explaining why a product is harmful.
It also tracks calories automatically, helping users manage both Quality (ingredients) and Quantity (calories) in one click.
How we built it
We used React Native for the mobile app and Python for the backend. The core intelligence is a pipeline powered entirely by Google Gemini.
- Vision & OCR: For ingredient lists, we use Gemini’s multimodal vision. It reads text perfectly even on curved bottles or crumpled chips bags where standard OCR fails.
- Data Synthesis: For barcodes, we integrate the Google Search API. Gemini acts as an orchestrator: it reads the search results, extracts the product composition, and cross-references it with our safety guidelines.
- Scoring Engine: We built a custom algorithm to turn chemistry into math. We calculate the "Safety Score" by weighing the toxicity of additives against nutritional density. If the toxicity () is high, the score drops, triggering a "Bad" verdict.
Challenges we ran into
- The "Local" Problem: Global databases don't cover Uzbekistan's specific products. We had to adapt the model to recognize local brands and ingredients, ensuring the AI understands the local cultural context.
- UX Friction: Our first version was too technical. We conducted hundreds of user surveys and calls. We realized we needed to simplify the interface radically—users want decisions, not raw data.
- Monetization: Adding a Paywall without killing retention was tough. We iterated on the user flow multiple times to find the right balance between free daily scans and premium insights.
Accomplishments that we're proud of
We didn't just build a toy; we built a sustainable business.
- Real Traction: We have 3,000 Daily Active Users (DAU) and 10,000 Monthly Users, growing organically.
- Revenue: We generated over $4,000 in just two months.
- Cultural Fit: We successfully adapted the product for the Uzbekistan market, proving the model works outside the US/EU bubble.
What we learned
We learned that Context > Data. Telling a user "Contains E250" means nothing. Telling them "Contains a preservative linked to heart issues — Don't buy" is useful. We also learned that direct feedback calls with users were the single biggest factor in improving our UX and retention.
What's next for GoodOrBad
We have validated the retention and the business model. Now, we scale. We are launching a targeted advertising campaign to capture the broader market and expanding the "Personalization" engine. Soon, GoodOrBad will adapt the safety score to specific health needs—like diabetes or allergies—making it a truly personal health assistant.
Built With
- cloud
- gemini-1.5-pro-search-&-data:-google-search-api-(programmable-search)-mobile:-react-native-backend:-python
- google-gemini
- google-search-api
- python
- react-native
Log in or sign up for Devpost to join the conversation.