Inspiration
Campus club events have leftovers every single day. I've walked past untouched pizza, bags of food sitting outside a meeting room, or heard "there's free food in the lobby" five minutes after it was all gone. Meanwhile, students are hungry, and nobody has a way to connect the two in real time. That disconnect felt like a solvable problem — so I built Munchi.
What it does
Munchi is a real-time campus food rescue app. Event hosts post leftover food listings in seconds — food name, location, portions, and expiry time. Students nearby see the feed update instantly, claim a portion, and head over before it expires. Every claimed meal is tracked, building a live counter of food rescued from the trash. Munchi works at any university in the US and is installable as a PWA directly from the browser — no App Store needed.
How we built it
I built Munchi as a full-stack Progressive Web App using Next.js 14 with the App Router and TypeScript. The database and authentication run on Supabase — I used Supabase Realtime to push new listings to every connected device instantly without page refreshes. Magic link authentication means students sign in with just their email, no passwords. The entire app is styled with Tailwind CSS using a custom design system I built from scratch, and deployed to Vercel with continuous deployment from GitHub.
Challenges we ran into
Real-time updates were trickier than expected — I had to enable Postgres replication on the listings table and move the Supabase client outside the React component to prevent subscription issues. Supabase's email rate limits hit hard during testing, which required careful management during development. Getting the PWA to feel truly native on iOS — with the correct viewport, safe area insets, and bottom nav behavior — took more iteration than expected.
Accomplishments that we're proud of
The real-time feed works beautifully — posting food on one device and watching it appear instantly on another is genuinely satisfying. I'm proud of the design too — every color, font, and component was intentionally chosen to feel warm, urgent, and on-brand. I built a complete full-stack app with auth, a database, real-time updates, and a polished UI solo in under 24 hours.
What we learned
I learned how powerful Supabase Realtime is for building live experiences without a custom WebSocket setup. I also learned that design decisions made early — color palette, typography, component patterns — pay off massively when building fast under pressure. And I learned that the best hackathon features are ones you can demo in 30 seconds.
What's next for MUNCHI
I want to integrate push notifications when food drops near you. A sustainability dashboard showing total food rescued by different campuses across the US. And a host dashboard so clubs can manage their listings and see how many students they fed.
Built With
- nextjs
- react
- supabase
- tailwind
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.