Dishly π½οΈ β Finally Know What You're Ordering
Ever stared at a restaurant menu and thought, βWhat is that?β
Dish names like Gazpacho or Ratatouille can be confusing when there is no photo or explanation. Menus often assume diners already understand the cuisine and terminology. Dishly closes that gap by helping people understand what they're actually ordering.
π° From Menu Roulette to Dishly
Dishly started as Menu Roulette β an app that randomly picked dishes for groups who couldn't decide what to order.
We kept that idea as Recommendation, but expanded the project into a complete menu companion. Dishly now explains dishes, provides visual references, and uses real diner reviews to make the experience more useful.
π What It Does
Users simply enter a restaurant's website and party size. Dishly then:
- Scrapes the menu using Steel, with a fast scraper and a Playwright fallback for JavaScript-heavy websites.
- Parses the menu into structured dishes, categories, prices, and descriptions.
- Explains each dish using information from Wikipedia and TheMealDB.
- Finds real diner opinions by scraping reviews and analyzing dish mentions and sentiment.
- Recommends dishes randomly selects dishes for the table.
π οΈ How We Built It
Built with Next.js, React, TypeScript, Tailwind, Steel, Playwright, and Claude.
One of our biggest technical challenges was parsing restaurant menus because there is no standard format. Our parser initially identified 16 of 23 test dishes correctly. After careful iteration, we reached 23/23, while prioritizing precision so unrelated text would not be mistaken for dishes.
We also built caching and fallback systems to make external lookups more reliable and reduce unnecessary requests.
π What We're Proud Of
- 23/23 dishes correctly parsed from our test set
- Real review data flowing from scraping β sentiment analysis β recommendations
- Genuine randomness in dish selection while keeping the AI's reasoning grounded in real data
- A recommendation system that combines useful information with a memorable personality
π‘ What We Learned
Dishly taught us that building an AI product is not just about the model. The quality of the data pipeline matters just as much.
We learned how to handle messy web data, build precision-focused parsers, combine deterministic logic with LLMs, and design reliable fallbacks for fragile external websites.
π What's Next
We plan to expand our parser across more restaurant websites, add a Diners' Picks section based on review sentiment, improve review-aware recommendations, and introduce budget-aware meal suggestions that help groups find the best combination of dishes within their price range. We also hope to eventually support picture-menu OCR.
Dishly helps you understand the menu, discover the food, and decide what to order.
Built With
- claudeapi
- javascript
- next.js
- steelapi
- typescript

Log in or sign up for Devpost to join the conversation.