Inspiration
Studies by the NRDC have shown that cutting food waste by 15% could feed 25 million people a year, showing how meaningful even small changes can be. SaveOurFoods started with a simple, very relatable problem: everyone on our team had opened their fridge at some point and found groceries we meant to use… but didn’t. As students, we tend to buy in bulk, forget expiry dates, cook inconsistently, and end up wasting tons of food. At the same time, we knew someone in our building or dorm could easily have used the food we were throwing out. That’s when the idea clicked:
- What if sharing groceries was as easy as posting them?
- What if we could turn everyday surplus into community support?
This became the slogan of SaveOurFoods: your neighbourhood pantry, reimagined.
What it does
SaveOurFoods lets users upload groceries, automatically detects the item through image with AI, and suggests expiry dates, quantities, and even storage tips. Users can track their food, see what’s expiring soon, and list surplus items for neighbours to take or buy. It creates a local marketplace where sharing food is as easy as posting a picture.
How we built it
We used Next.js, React, and CSS for the UI. Our backend runs on Next.js API routes and Typescript. We integrated Google’s Gemini 2.5 Flash for: image recognition, expiry/quantity inference, storage tips, ingredient analysis, price suggestions.
We also designed a polished interface, complete with our potato mascot!
Challenges we ran into
Debugging
Merge conflicts
Accomplishments that we're proud of
potato mascot potato mascot potato mascot potato mascot
What we learned
We learned how to prompt and parse Gemini models effectively. We learned how to design better UX for sustainability-focused apps. We learned to manage complex app state cleanly in React. We learned how surprisingly hard it is to infer expiry dates from photos.
What's next for SaveOurFoods
Turn it into a mobile app! And refine potato mascot.
Built With
- css
- javascript
- next.js
- react
- typescript


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