Inspiration

Dish. started from a very ordinary question we ask with our friends all the time:

“What should we eat today?”

This question became even more noticeable for international students arriving in a new city. There are plenty of restaurant platforms, maps, and reviews, but most of them organize food around restaurants. In real life, we often think about the dish first: we want beef noodle soup, we want dumplings, or simply we want something spicy.

There is also another problem: a good restaurant does not mean every dish there is equally good. One restaurant might make amazing beef noodles but average dumplings.

That led us to interpret the hackathon theme of blocks at a smaller scale. Instead of treating the restaurant as the basic block of food discovery, Dish. treats the dish itself as the block.

And Dish Blocks are not isolated. The same dish connects to different restaurant versions, while dishes can also connect through cuisines, similarities, ingredients, restaurants, and tastes.

The dish is the block. The interesting part is how those blocks connect.

What it does

Dish. is a dish-first food discovery app.

Instead of choosing a restaurant first, users can start with what they actually want to eat.

A user can discover a specific dish nearby, open its Dish Block, and see different restaurant-specific versions of the same dish. From there, they can view details, compare versions, see them on a map, and get directions to the restaurant they choose.

The core structure is:

Dish → Versions → Restaurants → other Dishes

Community feedback also belongs to the specific dish version rather than the restaurant as a whole. Instead of five-star ratings, Dish. asks one simple question:

“Would you eat it again?”

Users can also contribute missing dish versions, photos, prices, and reviews, gradually building a more connected local food catalog.

How we built it

Dish. is a cross-platform mobile app built with Expo, React Native, TypeScript, and Expo Router.

We used AI-assisted development throughout the hackathon to accelerate implementation. Our main focus was defining the product architecture, designing the Dish / DishVersion / Restaurant data model, planning the user flows and interactions, testing the application, and identifying and fixing bugs.

We also designed the experience around progressive decision-making: Discover stays visual and lightweight, Dish Blocks expose different versions, and detailed information only appears when the user needs it.

Challenges we ran into

The biggest challenge is real data.

We think there are two broad kinds of apps: products whose value mainly comes from the tool itself, and products whose value depends heavily on the content and community inside them.

Dish. belongs much more to the second category.

A prototype can demonstrate the idea, but useful food discovery requires real dishes, restaurants, photos, reviews, prices, and contributors. Building that dataset and community is much harder than simply building the interface.

Another challenge is deciding what counts as the same dish.

Sometimes two restaurant versions clearly belong to the same Dish Block. Other times, differences in ingredients, preparation, regional style, or naming make the boundary unclear.

For this prototype, Dish Blocks are distinguished manually. In the future, AI could analyze names, descriptions, ingredients, images, and existing relationships to suggest whether a contribution belongs to an existing Dish Block or should create a new one.

Accomplishments that we're proud of

We're proud that Dish. developed from a simple everyday problem — “What should we eat today?” — into a product model that feels meaningfully different from restaurant-first discovery.

The biggest accomplishment was not simply adding features, but establishing a consistent structure around Dish, DishVersion, and Restaurant, and making that structure work across discovery, comparison, maps, reviews, saving, and community contributions.

We're also proud that we were able to turn the concept into a working cross-platform mobile prototype within the limited hackathon timeframe while learning Expo along the way.

What we learned

One of the biggest things we learned was that building a product is not only about implementing features.

A lot of the difficult work came from deciding what the basic unit of the product should be, how those units connect, and what information the user actually needs at each stage.

We also gained practical experience with Expo and cross-platform mobile development, and learned more about using AI effectively as a development tool while still taking responsibility for architecture, product decisions, testing, and debugging.

What's next for Dish.

The next step is turning Dish. from a prototype catalog into a real community-built food network.

That means collecting real local food data, improving contribution and moderation flows, and testing the product with real users — especially people who have just arrived in a new city and do not yet know where to eat.

We would also like to explore AI-assisted Dish Block matching, helping determine whether a newly contributed dish belongs to an existing block or represents something genuinely different.

Longer term, Dish Blocks could become more connected. A user might start with Beef Noodle Soup, explore different restaurant versions, discover a related noodle dish, move to another cuisine, or discover another dish at the same restaurant.

The goal is not just a database of dishes, but a connected way to explore the food around us.

Built With

+ 2 more
Share this project:

Updates