Inspiration
Single-use takeaway packaging is designed for minutes of use and years of waste. ReTray explores a simpler alternative: make reusable containers easy for food venues to issue, recover, wash, and put back into circulation.
What it does
ReTray is a reusable food-packaging operating system for food venues and their customers.
A venue manages its containers and issues a container through a unique QR code. A customer can see an active borrow and return status. When the container comes back, the venue records its return and marks it wash-ready before it re-enters circulation.
Every lifecycle step is recorded, giving the venue a clearer view of what is out, returned, ready to wash, and ready to reuse.
How we built it
We built ReTray with a Next.js and React interface, TypeScript, Cloudflare Workers, and a D1 database accessed through Drizzle ORM.
The application has role-aware venue operator and consumer experiences. Containers, active borrows, returns, deposit-ledger status, and circulation events are persisted in the database. We also added server-side access checks and an immutable circulation history so lifecycle actions can be traced.
Challenges we faced
The main challenge was moving from a polished prototype to a genuine persistent product without inflating the scope. We focused on the closed-loop packaging journey first: issue, track, return, wash, and recirculate.
Local development also required debugging the Windows worker runtime and stale local development locks while keeping the Cloudflare and D1 architecture intact.
What we learned
Sustainability products only work when the operational loop is as simple as the disposable option. ReTray is designed around that reality: clear roles, a scannable container identity, and a visible return journey.
Built With
- cloudflare-d1
- cloudflare-workers
- drizzle-orm
- next.js
- qrcode
- react
- tailwind-css
- typescript
- vite
Log in or sign up for Devpost to join the conversation.