-
-
Home Page (scan your receipt/fridge here)
-
Pantry (what items/goods do you have)
-
Plan (mealprepping assistant)
-
Next Up (recommended recipe to use items that are about to spoil)
-
Recipe Page
-
Streak & Savings
-
Rewind feature (if you accidentally take a picture of a receipt twice and don't want to delete the items one by one)
-
Text Alerts
-
Figma Complete UI Design + Wireframing
-
Figma Design on Scan Page, Pantry Page & Plan Page
-
Figma Design Guide
Table: 90
🌱 Inspiration:
Reviri was inspired by a simple problem: we often buy groceries without realizing what we already have at home. Food gets forgotten, expires, and goes to waste - not because we don’t care, but because we lose track. We wanted to create something that connects what’s already in your kitchen with what you buy next, making everyday grocery shopping smarter and more sustainable.
🚀 What it does:
Reviri turns grocery shopping into a smarter, waste-minimizing process. It starts by scanning your receipts to build a real-time inventory of what you have, then uses weekly fridge checks to keep that inventory accurate. From there, Reviri plans meals and portions around your existing ingredients, calculates what will be left over, and builds your next grocery list around what you actually need. Its recipe engine can suggest meals that use up ingredients before they expire or recommend a few extra items to unlock a meal. With waste-based streaks, savings tracking, and social features, Reviri makes using what you have feel rewarding - not restrictive.
💻 How we built it:
Reviri was designed in Figma and built as an iPhone app using SwiftUI and Xcode, with a Python FastAPI backend handling the logic behind inventory, expiration dates, portions, leftovers, recipe matching, and waste calculations. Google Gemini powers the AI features, including reading grocery receipts, recognizing food from fridge photos, and generating recipes, while the actual calculations are handled separately in tested Python so that the numbers remain reliable. We used Neon Postgres to store pantry data, user settings, and savings statistics, while Neon Time Travel powers Reviri’s rewind feature and scheduled functions allow expiration alerts to run even when our server is offline. Photon is used to send shopping lists and daily spoilage alerts through iMessage.
🙉 Challenges we ran into:
One of our biggest challenges was making several technologies work reliably together during a very short 24 hrs hackathon. The Gemini model we originally planned to use became unavailable to new users, and the replacement models were sometimes overloaded, so we added retries and backup models to keep scanning functional. Connecting the iPhone to our laptop was another unexpected problem because of changing Wi-Fi addresses, iOS local-network restrictions, and limitations on unsecured connections. We also had to solve smaller but important product problems, such as preventing a fridge scan from counting groceries that had already been added through a receipt. Even our streak system changed during development when we realized that punishing users for throwing food away could encourage them to hide their waste rather than track it honestly.
😱 Accomplishments that we're proud of:
We are most proud that Reviri became a working app rather than just an idea or prototype. Receipt scanning, fridge recognition, live meal planning, recipe search, spoilage alerts, savings tracking, and pantry updates all work together on a real iPhone. We built the app with 59 passing automated tests and made sure that AI never performs the calculations users rely on. We also turned Neon features such as Time Travel into something useful for everyday users by making it possible to rewind accidental pantry changes. For some of our teammates, this was their first hackathon, and for all of us, it's our first time using Swift and Xcode. Seeing the Figma designs become a functioning product over the course of one weekend was something we were especially proud of.
📗 What we learned:
Building Reviri taught us that AI works best when it is given the right job. Gemini is extremely useful for interpreting messy information such as receipts, fridge photos, and natural-language recipe requests, but calculations involving quantities, savings, expiration dates, and food waste are better handled by deterministic, tested code. We also learned that sustainability features need to work with human behavior rather than against it. A system that makes users feel punished for admitting they wasted food is unlikely to receive honest data, so Reviri focuses on rewarding better habits while still recording waste. Technically, we learned how much a database can do beyond simply storing information, especially through Neon’s Time Travel and scheduled functions. Most importantly, we learned how quickly a team can pick up unfamiliar technologies when everyone is building toward a clear product.

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