Inspiration
Every night, restaurants throw away food while shelters nearby are still trying to feed people. That contradiction is what inspired Replate. We did not want to build another donation listing board where food sits unclaimed until it expires. We wanted to build a real-time rescue system that helps donors, shelters, and volunteer drivers move safe surplus food while it still matters.
Replate is built on a simple idea: food rescue is not only a charity problem, it is a logistics problem. If the right food reaches the right shelter at the right time, waste turns into meals.
How We Built It
We built Replate as a full-stack web app using Next.js and TypeScript.
Donors can post available surplus food with pickup details, storage type, expiration urgency, and safety information.
Shelters can view and claim donations based on need, distance, timing, and food requirements.
Drivers can accept pickups, view route previews, open navigation links, and update delivery progress.
We created protected API routes for authentication, donation posting, claiming, assigning, unmatching, transit updates, receipt confirmation, and completion.
We added urgency-aware sorting so food that needs to move first does not get buried.
We built safety checklist checkpoints to make the handoff feel more realistic and responsible.
The interface was designed to feel warm and human instead of like a cold admin dashboard, while still staying responsive and accessible.
Challenges We Ran Into
The hardest part was making one donation move safely through several different users without breaking the workflow. A donor can post food, a shelter can claim it, a driver can accept it, the food can enter transit, the shelter can confirm receipt, and only then should the donation be completed.
That meant we had to carefully block invalid actions, such as unmatching a shelter after a driver had already accepted the pickup or marking a delivery complete before the shelter confirmed it. We also ran into deployment issues because of our repository and root-directory structure, so we had to clean up the project organization to make cloud builds detect the Next.js app correctly.
Accomplishments That We’re Proud Of
We are proud that Replate is not just a pretty mockup. It supports the full food rescue journey from posting to completion, with real guardrails at each step. Donors can submit food, shelters can match or unmatch, drivers can accept and transport donations, and shelters can confirm receipt before the rescue is marked complete.
We are also proud that the product feels usable. The dashboards are separated by role, the actions are clear, and the visual identity makes the app feel more compassionate than transactional.
What We Learned
Food rescue becomes much harder when timing, safety, storage, and transportation all have to work together.
Multi-role apps need strict rules so one user cannot accidentally break another user’s workflow.
Good API design is not just about making features work, but about deciding who is allowed to do what and when.
Map-based features need to be helpful without making the app depend on perfect location data.
Deployment and project structure matter because a great prototype still needs to run reliably.
Under hackathon pressure, the best features are the ones that make the demo feel real.
What’s Next for Replate
Add live status updates so donors, shelters, and drivers can see changes instantly.
Improve matching with dietary restrictions, pickup windows, storage needs, and partner reliability.
Add analytics for meals rescued, response time, completed pickups, and waste reduction.
Build stronger trust and safety tools, including audit trails, verified partners, and moderation.
Pilot Replate with local food businesses, shelters, and student volunteer groups.
Move toward a production-ready system with a persistent database, background jobs, and monitoring.
Built With
- cursor
- next.js
- openai
- typescript
Log in or sign up for Devpost to join the conversation.