Inspiration
One of us travels a lot and has a thing about fish — not an allergy exactly, just a strong preference to avoid it. And the number of times we've sat down at a restaurant abroad, looked at a menu we couldn't fully read, and just... guessed? More than we'd like to admit. You don't always want to flag down the waiter and ask "does this have fish sauce in it?" — especially when there's a language barrier, or you just don't want to be that person at the table. That feeling of uncertainty stuck with us. And when we thought about people with actual allergies — not just preferences, but real medical risks — we realized the problem was so much bigger. That's where BiteRight came from.
What it does
BiteRight is a web app that analyzes restaurant menus for hidden allergens and health risks, personalized to each user. You start by setting up a dietary profile — selecting your allergies and how severe they are (mild intolerance vs. moderate allergy vs. anaphylactic), and any health conditions you're managing along with how strictly you want to follow dietary guidance. Then you paste in a menu or upload a photo of one. BiteRight parses every dish, applies culinary knowledge to surface hidden ingredients that wouldn't appear on the menu (like peanut oil in Chinese stir fries, fish sauce in Thai dishes, or ghee in Indian curries), and classifies each dish into one of three categories: Skip this, Be mindful, or Safe for you. Click any dish to see exactly why it was flagged, including a hidden ingredient note where relevant. There's also a follow-up chat where you can ask questions about specific dishes in context. BiteRight also supports menus in any language — upload an entirely Chinese or Arabic menu and results come back in English, with the original dish name preserved so you can map it back to what's actually on the menu in front of you.
How we built it
The frontend is built with Next.js and React, using inline styles for a custom dark-themed UI inspired by the green and beige tones of our logo. The backend is a FastAPI server in Python. For AI, we used OpenAI's GPT-4.1 Mini for dish analysis, chat, and the hidden ingredient inference — and GPT-4 Vision for extracting menu text from uploaded images. The classification logic uses a combination of fast rule-based keyword scanning (to catch obvious allergen matches before hitting the API) and a carefully engineered LLM prompt with few-shot examples based on the user's severity tier and guidance level.
Challenges we ran into
The hardest part by far was getting the LLM to classify dishes at the right level of caution — not too aggressive, not too lenient. Early versions flagged almost everything as "be mindful" because we'd given the model too many hedging instructions. Then we overcorrected and nearly everything came back "safe." Finding the balance was a genuine iteration challenge. The breakthrough was separating the status decision from the explanation generation and using severity tiers with explicit behavioral rules (e.g. "mild intolerance means ignore cooking oils entirely"). We also had to think hard about how to make the severity input feel intuitive for users — a 1–10 slider meant nothing to someone who just knows they have a peanut allergy, so we replaced it with plain-English options like "moderate allergy — real reaction on direct contact" that map directly to concrete flagging behaviors.
Accomplishments that we're proud of
We're especially proud of the multilingual support. You can paste in a menu entirely in Chinese, for example, and BiteRight will analyze it correctly and return results in English — but it preserves the original dish name in the native script so you can still look at your physical menu and find the dish. That felt like a meaningful feature for the exact use case that inspired this project in the first place: traveling somewhere where you genuinely can't read what you're ordering. We're also proud of the hidden ingredient engine — the fact that BiteRight can tell you that a Vietnamese stir fry probably uses fish sauce, or that an Indian curry is likely tempered with ghee, even when the menu says nothing of the sort, feels like the core of what makes this genuinely useful rather than just a keyword scanner.
Built With
- css
- fastapi
- next.js
- openai
- pydantic
- python
- react
- tailwind
- typescript
Log in or sign up for Devpost to join the conversation.