Inspiration

We were inspired by initiatives like 2GOOD2GO, which reduce waste of finished food products. We realized that ingredient-level spoilage happens much earlier, and tackling it could prevent waste before meals are even prepared. Small and medium restaurants often lack affordable, standalone tools to track ingredient expiry, which motivated us to create Expiry.

What it does

Expiry helps restaurants reduce ingredient waste by:

Keeping track of near-expiry items.

Recommending recipes to promote as daily specials based on at-risk ingredients.

Allowing quick confirmation of used ingredients to refine future recommendations.

This approach helps restaurants cut losses, use ingredients efficiently, and operate more sustainably.

How we built it

Expiry is a mobile-first web app built with Next.js (App Router) + TypeScript, styled using TailwindCSS + shadcn/ui (Radix) for a clean “native app” feel. It uses a centralized app state store to keep ingredients, shipments, screens, and expiry dates synced instantly. For expiry capture, it opens the camera with getUserMedia(), grabs a focused ROI from the feed into a hidden canvas, preprocesses it (contrast/threshold), then runs Tesseract.js OCR to extract and score date candidates. Once saved, the app ranks ingredients by urgency (closest expiry) and recommends discount/special/bundle items that consume them to eliminate waste with super low-friction inputs.

Workflow Design: Created a simple, intuitive onboarding and daily inventory process for staff.

Daily Recommendations: Built logic to rank at-risk ingredients and suggest recipes to promote.

Challenges we ran into

User Simplicity: Designing an intuitive workflow without relying on POS systems.

Ingredient Tracking: Ensuring the app could handle multiple expiry dates and batch updates efficiently.

Sustainability Focus: Balancing usability with meaningful waste reduction insights.

Accomplishments that we're proud of

Built a fully functional web app for real-time ingredient tracking.

Created a workflow that is simple, intuitive, and usable by small restaurants without extra infrastructure.

Designed the app to promote sustainability and reduce food waste effectively.

What We Learned

How to design a practical solution for ingredient-level waste.

How to structure state management and real-time updates in a React/TypeScript app.

How to make business tools lightweight, intuitive, and impactful.

What's next for Expiry

Feasibility: works as a lightweight standalone tool with manual inputs + camera scanning, so restaurants can adopt without POS integration.

Scalability: multi-location accounts, role-based access, cloud database for shipments/expiry logs, and analytics dashboards.

Growth plan: start with independent restaurants → expand to small chains → integrate POS later for automated demand signals.

Share this project:

Updates