Inspiration

Growing up, my family and I have always been pretty health-conscious. We’d buy organic food, choose seasonal produce, and, most importantly, always read the labels on the back of food containers. But even with that mindset, I found myself constantly surprised by the long, scientific-sounding, incredibly obscure ingredients on the back of food packages. What were these additives and preservatives really doing in my food? Were they safe? That curiosity (and frustration) inspired me to build Beyond the Label, a mobile app that helps consumers make safer, smarter decisions about the food they eat.

What it does

With a simple barcode scan, the app pulls up a full list of a product’s ingredients and checks them against trusted international health databases like the FDA, as well as EU organizations known for having stricter standards on chemical safety such as IARC and EFSA. If an ingredient is flagged as potentially harmful or questionable, the app lets users know and even suggests healthier, safer alternatives for similar products.

How I built it

Beyond the Label was built as a modern, responsive web app using React, Vite, and TypeScript. React's component-based architecture made it easy to organize functionality, while TypeScript added type safety and helped prevent bugs as the project scaled. I chose Vite for its fast development environment and optimized build process, and styled the entire app using Tailwind CSS, which allowed for rapid UI development with a clean, consistent aesthetic. For barcode scanning, I integrated Scanbot Web UI, enabling seamless in-browser scanning. Once a product is scanned, its data is retrieved using the Open Food Facts API, which provides a list of ingredients and metadata. From there, I built a custom backend pipeline that cross-references each ingredient with international health sources like the FDA, IARC, and EFSA through a combination of API calls and web scraping. This system identifies potentially harmful additives by normalizing ingredient names and matching them across regulatory lists. Finally, I extended this logic to build a recommendation engine that compares products in the same category and suggests safer alternatives with fewer flagged ingredients — giving users a clearer, healthier choice at a glance.

Challenges I ran into

This was my first time solo hacking, so one of the biggest challenges was figuring out how to take an idea with such a large scope and actually turn it into a working product all on my own. From designing the user experience to implementing backend logic and everything in between, it was a lot to manage and required learning on the fly. One major technical hurdle was setting up the barcode scanning functionality. While I used Scanbot Web UI to handle most of the computer vision work, getting it to integrate smoothly with the rest of the app and ensuring it performed reliably across different devices took a good amount of troubleshooting. Another major challenge was dealing with the lack of public APIs for some of the European regulatory databases like EFSA. To overcome this, I had to write custom web scrapers to extract the data I needed, which meant handling inconsistently formatted websites, rate limits, and parsing data that wasn’t always easy to work with.

Accomplishments that I'm proud of

I'm proud that I was able to bring this entire project to life on my own. As my first solo hackathon project, tackling everything from ideation to design to implementation was both challenging and rewarding. It pushed me out of my comfort zone and helped me grow as a developer. Beyond the technical achievement, I’m especially proud that I created something meaningful that I can actually use in my daily life to make more informed choices and continue living a healthier lifestyle. Knowing that this project has the potential to improve not just my habits, but also help others become more conscious consumers, makes it feel all the more impactful.

What I learned

Throughout this project, I picked up a ton of valuable technical and practical skills. On the development side, I learned how to use React and TypeScript to build a robust, type-safe frontend, which helped me structure my code more clearly and catch errors early. Styling became a breeze thanks to Tailwind CSS, which made the entire UI-making process faster and more intuitive. I also learned how to build simple yet effective web scrapers using Beautiful Soup, which was key for extracting data from European health websites that didn’t offer public APIs. Beyond the code, I gained a deeper appreciation for the full development process. I used Figma to plan and flesh out the app’s design before writing a single line of code which was something that helped me stay organized and intentional with every screen. Managing a large project on my own taught me a lot about time management, prioritization, and breaking problems down into achievable steps. Just as importantly, I learned how to communicate my ideas clearly and pitch my project confidently to a panel of judges, turning technical work into an interesting story.

What's next for Beyond the Lab

One of the biggest next steps I’m excited about is expanding Beyond the Label to support cosmetics and skincare products. Just like with food, many personal care items contain ingredients that can be irritating, hormone-disrupting, or even potentially carcinogenic. However, most consumers have no idea what those long, scientific names on the label actually mean. By adding support for barcode scanning and classification in this space, the app could help users avoid harmful chemicals in the products they put on their skin every day. I plan to integrate additional databases like CosIng more deeply for cosmetic-specific ingredients, and build a similar recommendation engine to suggest cleaner, safer alternatives based on each user’s needs and preferences. Expanding in this direction could make Beyond the Label an even more comprehensive tool for conscious living, helping people not only eat better, but live healthier across all areas of their daily routine.

Built With

Share this project:

Updates