Inspiration
As an international student and a frequent traveler, I often found myself in a familiar predicament: overwhelmed by choice, yet unable to find the right place to eat in a new city, including Hong Kong. The endless scrolling through reviews, the long queues at well-known tourist traps, and the feeling of missing out on hidden local gems became a recurring frustration. This personal struggle sparked the idea for FreeWillEat. We envisioned a platform that not only simplifies restaurant discovery for people in unfamiliar environments but also levels the playing field for all restaurants, not just the famous ones. We wanted to give smaller, deserving establishments a chance to be discovered and to enhance the tourism experience by eliminating the friction of finding a great meal.
What it does
FreeWillEat is a "matching app for restaurants," a mobile application designed to make food discovery intuitive, personal, and exciting. At its core, the app presents users with a curated stream of restaurant cards. Users can swipe right to like and save a restaurant or swipe left to pass. This simple interaction is the foundation of our AI-powered recommendation engine.
The app is built around a seamless user experience, divided into five main screens:
- Home (Swipe Discovery): This is where the magic begins. Users are presented with restaurant cards featuring captivating photos, names, and ratings. The swiping mechanism is fluid and engaging, allowing for rapid discovery.
- Explore (Photo Gallery): For the more visual user, this screen offers an gallery-style grid of all restaurant photos. It includes search and filter functionalities, and tapping on a photo reveals a detailed view with a full gallery, like/save options, a comments section, and more information about the restaurant.
- AI Chat (Smart Recommendations): This is our conversational recommendation engine. Users can ask natural language questions like "Where can I find a romantic dinner spot?" or "What's the best sushi nearby?" Our AI, powered by OpenAI's GPT model, analyzes the request against our restaurant database and provides intelligent suggestions, complete with photos and explanations.
- Profile (User Management): This screen allows users to manage their account, view their liked restaurants, and access various settings.
- Settings (Preferences & Configuration): Here, users can customize their experience, from switching between light and dark themes to setting dietary preferences like vegetarian, vegan, gluten-free, halal, and kosher.
How we built it
FreeWillEat was brought to life using a modern and robust tech stack. The frontend is a mobile app built with React Native/Expo, allowing for a seamless cross-platform presence. The backend is powered by a Node.js/Express server and a MongoDB database to manage all user and restaurant data. A key feature, our AI chat assistant, goes beyond a simple integration with the OpenAI API. We implemented a sophisticated Retrieval-Augmented Generation (RAG) architecture. To achieve this, we transformed our entire restaurant database—including details on cuisine, ambiance, and unique characteristics—into embedding vectors. When a user asks a question like "Where can I find a quiet spot for a business meeting?", their prompt is converted into a vector in the same high-dimensional space. This enables the system to first retrieve the most contextually relevant restaurants before sending this curated information to the OpenAI model to generate a precise, knowledgeable, and highly relevant answer.
A significant part of our development success can be attributed to our use of Amazon Q Developer and Kiro. Our experience with these tools transformed the development process. When creating the core algorithm for our restaurant recommendation engine—which needed to weigh user preferences, restaurant popularity, and proximity—Amazon Q Developer was like having a co-pilot. I could describe my complex ranking logic in plain English, and Q would generate the necessary Python code. It even helped with scripting pandas jobs to fetch and process user preference data.
Once the code was written, Kiro became our automated code reviewer and debugger. It was instrumental in identifying edge cases I had overlooked, such as how to handle new restaurants with limited data or what to do when a user's location data was unavailable. Kiro's suggestions were always concise and actionable, allowing for rapid iteration. This workflow—ideate, code with Q, review with Kiro, and then refine—significantly accelerated our development timeline and improved the quality of our final product.
Challenges we ran into
Navigating the Startup Maze: From B2C Passion to B2B Pragmatism
Initially, our entire focus was on the end-user. We were building an app we desperately wanted for ourselves, a classic B2C model. However, as we delved deeper, we confronted a critical strategic challenge: how to build a sustainable business. A purely user-focused model often relies on a massive user base before monetization becomes viable, a slow and uncertain path. This led to a pivotal shift in our thinking. We realized that our most valuable asset was the engaged community of discerning diners we were building. The real business opportunity wasn't just serving them, but in connecting them with restaurants. This led us to pivot our primary strategy to a B2B model, where restaurants are our partners and our vibrant user community is the audience we can help them reach. This wasn't just a business decision; it was a philosophical one that created a healthier ecosystem where restaurants gain visibility and our users get a better, more curated experience.
Taming the Chaos: The Human Element
Like any passionate startup, our early days were a whirlwind of ideas, late-night coding sessions, and shifting priorities. The creative energy was immense, but it also brought the risk of disorganization. We found ourselves pulled in multiple directions, with feature ideas constantly emerging. To counter this, we made a crucial, non-technical decision: we appointed one team member as the dedicated project manager. Their role was to act as the anchor, translating our broad vision into a structured roadmap with clear sprints, deadlines, and priorities. This discipline was a game-changer. It allowed the rest of the team to focus purely on development and design, confident that our efforts were aligned and that we were on the fastest path to a cohesive, functional product.
The Three-Headed Hydra of Data Integration
Our application’s intelligence is derived from the seamless fusion of three distinct data sources: our internal MongoDB database of restaurants, the vast knowledge base of the OpenAI chatbot, and the real-time preference models of our AI recommender. Making these systems speak the same language was a formidable architectural hurdle. We faced conflicting data schemas, asynchronous update cycles, and the constant risk of data corruption. The integration assistance from Amazon Q Developer was invaluable here. We used it to generate complex Python scripts for data transformation, creating a unified data pipeline. Kiro then acted as our automated sentinel, identifying potential race conditions where, for example, a user's "like" might be recorded before their location was updated, leading to skewed recommendations. This proactive debugging saved us from countless hours of chasing elusive, data-related bugs.
The Pursuit of Perfection: User Experience and Data Integrity
We knew that for a swipe-based discovery app, the user experience had to be flawless—not just functional, but magical. The slightest bug or moment of lag could shatter the illusion. Here, Amazon Q Developer helped us quickly prototype UI components, while Kiro was relentless in finding subtle but critical imperfections. It would flag edge cases we hadn't considered, such as how the app behaved on a slow network connection or what happened if a user received a notification mid-swipe. This intense focus on quality directly informed our final major challenge: data sourcing. While integrating a major API like Google Places was tempting, we recognized that their vast but often inconsistent data (e.g., outdated photos, incorrect hours) would compromise the polished MVP experience we were aiming for. Therefore, we made the strategic decision to manually curate a high-quality, verified dataset for a specific geographic area. This allowed us to prove our concept with pristine data, ensuring our first users had the perfect experience before we tackled the monumental task of cleaning and integrating global-scale data.
Accomplishments that we're proud of
For years, FreeWillEat was an idea tucked away in the back of our minds—a persistent "what if" that surfaced every time we traveled or felt lost in a new city. Our proudest accomplishment is not just building an app, but finally breathing life into that long-held vision. We successfully translated a deeply personal frustration into a tangible, functional solution, and the tools we used were the catalyst that made it possible.
At the heart of this accomplishment is our dynamic and truly personalized restaurant ranking system. This is more than just an algorithm; it's the engine of serendipity we always dreamed of. Seeing it work for the first time—watching it learn from a few swipes and begin to surface hidden gems that perfectly matched a specific mood or craving—was the moment our abstract idea became a reality. With the crucial assistance of Amazon Q and Kiro, this complex system, which adapts in real-time to each user's unique tastes, went from a concept on a whiteboard to robust, executable code.
The efficiency of this process is an accomplishment in itself. The synergy between AI-powered coding assistance and intelligent debugging was transformative. We were able to move from high-level ideation to a polished, functional prototype at a speed we never thought possible. This acceleration was not just about saving time; it allowed us to stay focused on the user experience—the soul of our project—rather than getting bogged down in the mechanics of coding and debugging. Ultimately, we are proud to have built a system that feels intelligent, personal, and solves the very problem that sparked this journey years ago.
What we learned
This project has been a significant learning experience. We learned the immense value of leveraging AI-powered development tools. The ability to describe complex logic in natural language and receive functional code in return is a game-changer. It allowed us to experiment with different approaches to our recommendation algorithm without getting bogged down in boilerplate code.
We also learned the importance of an iterative development cycle. The rapid feedback loop provided by Kiro’s automated code reviews meant we could constantly refine our code, catching potential issues early and ensuring a more robust final product. This experience solidified our belief in the power of a "design, code, review, repeat" methodology, especially when working on a complex, data-driven application.
What's next for FreeWillEat
We are just getting started on our mission to revolutionize food discovery. Our roadmap for the future is ambitious and focused on growth and user value:
- Short-Term (Next 6 Months):
- Data Enrichment: Integrate with major APIs like Google Places and Yelp to expand our restaurant database and provide a comprehensive, global selection.
- Direct Booking and Ordering: Implement partnerships with booking and delivery platforms to allow users to reserve a table or order food directly within the app.
App Store Launch: Publish FreeWillEat on the iOS App Store and Google Play Store to begin gathering real-world user feedback and iterating on our features.
Medium-Term (6-18 Months):
Advanced Machine Learning Model: Evolve our recommendation engine from a rules-based system to a sophisticated machine learning model on AWS SageMaker, utilizing collaborative filtering to deliver even more accurate and personalized suggestions.
Social Features: Introduce "dining group" functionality, allowing users to swipe together and receive recommendations that match the collective taste of the group.
Long-Term (18+ Months):
Full Monetization Rollout: Launch our tiered subscription model for restaurants, providing them with a powerful analytics dashboard to understand customer preferences and market trends.
Global Expansion: Scale our platform to new cities and countries, making FreeWillEat the essential tool for food discovery for travelers and locals everywhere.
Built With
- amazon-q-developer
- bash
- expo.io
- express.js
- github
- google-places
- kiro
- mongodb
- node.js
- openai-api
- react-native


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