Inspiration
Every day, good food gets wasted while nearby shelters struggle to meet meal demand. RescueBite was inspired by that gap: food exists, need exists, but coordination is broken. We wanted to build a practical, local-first system that helps shelters request food, restaurants respond quickly, and delivery partners close the loop.
What it does
RescueBite is a real-time coordination platform for food rescue:
- Shelters post food requests.
- Restaurants view requests, accept/decline, and publish surplus posts.
- Once accepted, shelters can assign a delivery partner.
- Restaurants track pickup progression (
Processing->Picked Up->Received). - Requests auto-expire if uncollected after 3 hours.
- Email notifications keep both sides informed on key state changes.
- Dashboards update meal impact when deliveries complete.
How we built it
- Next.js App Router + TypeScript for frontend and API routes.
- MongoDB for users, posts, claims, and request lifecycle state.
- Role-based UX for shelter, restaurant, and volunteer flows.
- Polling-based sync (5s) for near real-time status updates.
- Resend email integration for workflow notifications.
- Tailwind + reusable UI components for fast iteration.
Challenges we ran into
- Keeping state transitions consistent across multiple roles.
- Avoiding stale UI when statuses changed quickly.
- Handling legacy status values while introducing new lifecycle states.
- Permission/auth issues during deployment and repo push workflows.
- Balancing speed of delivery with type-safe changes.
Accomplishments that we're proud of
- Built an end-to-end multi-actor workflow, not just static forms.
- Added synchronous status visibility for both shelter and restaurant.
- Implemented action-triggered notifications that mirror business events.
- Added auto-expiry safeguards to prevent stale operational tasks.
- Kept codebase type-safe despite rapid iteration.
What we learned
- Workflow products live or die on state clarity.
- “Real-time enough” can be achieved pragmatically with reliable polling.
- Clear role boundaries reduce logic bugs.
- Notifications should be event-driven, not page-driven.
- Fast feedback loops (typecheck + route-level testing) save time later.
What's next for RescueBite
- WebSocket/SSE real-time updates instead of polling.
- Stronger audit trails and activity timeline per request.
- Better routing optimization for delivery partners.
- In-app notifications + SMS support.
- Admin analytics (waste avoided, response time, completion SLA).
- Production hardening: auth middleware, rate limits, monitoring, CI/CD, and full deployment automation.
Log in or sign up for Devpost to join the conversation.