Client: Personal Project
A personal project exploring food waste in South Africa. Zero Waste Bites was a two sided marketplace app concept connecting local retailers and restaurants with nearby customers through discounted surplus food deals.

Food waste is a significant problem in South Africa, with retailers and restaurants regularly discarding surplus stock that is still perfectly good to eat. Apps like Too Good To Go in Europe and Flashfood in the US have proven that there is a real market for connecting businesses with surplus food to nearby customers willing to buy it at a discount. I saw a gap in the South African market and decided to build it.
This was entirely self initiated. I designed and built the app solo in my own time, handling everything from product thinking and UX design through to development and business development.
Two sided marketplaces are one of the hardest products to build. You need supply before you can attract demand, and demand before partners see value in supplying. On top of that, food has real urgency built in. Listings go stale, stock runs out, and timing matters in a way it doesn't for most apps.
The technical and business challenges were significant but the core problem being solved was simple: surplus food was going to waste while nearby customers who would have bought it at a discount never knew it existed.
The palette is built around earthy, natural tones. A warm beige (#FFF8EF) forms the primary background, grounded by Charcoal (#292524) for text and accented by a deep green (#1A3D25) that reinforces the sustainability angle without feeling preachy.
DM Sans handles body copy and UI text, a clean variable font that stays readable at small sizes across mobile. Degular Display Semibold brings personality to headings, slightly unconventional but fitting for a brand trying to make sustainability feel exciting rather than worthy.

The concept was validated by existing players in other markets. Too Good To Go operates across Europe with millions of users and Flashfood has proven the model in North America. South Africa had nothing comparable at the time. The business model was straightforward for partners, list surplus food at a discount rather than bin it, recover some revenue, and reduce waste. For users, discover good food nearby at a fraction of the normal price.

The core user journey had four steps. Partners list surplus items with a sell by date and discounted price. Users browse a discover feed sorted by proximity. They purchase in app and receive a unique QR code. They collect in store using that code.
Simple on the surface but each step had real design decisions underneath it. The discover feed needed to feel local and immediate, so I built it to surface the closest stores and their available items first, updating in real time as stock changed. Search, sorting, and filtering gave users more control when browsing by preference rather than just location.

Storefront Screen

Search Screen
The most technically complex feature was the cart. Allowing users to add items from multiple stores in a single checkout sounds straightforward but requires careful thinking about stock availability, timing, and what happens when one item sells out mid checkout. Preventing race conditions, holding items temporarily without permanently reserving them, and keeping the experience feeling seamless for the user required a lot of thought and a fair amount of iteration to get right.
This was also my first time working with Supabase and relational databases, which added to the challenge but also taught me more about data architecture than any other project I have worked on.
Once an order was placed the user received a unique QR code tied to their purchase. The orders screen listed all active and past orders with their codes readily accessible. The QR approach kept the pickup experience simple for both the user and the store partner without requiring any complex integration on the retailer side.
For payments I chose Paystack for their low transaction fees and straightforward mobile payment integration, which made sense for a South African product targeting everyday purchases.

A similar product launched in the South African market while I was still building. That combined with the reality of running a two sided marketplace solo, needing to simultaneously recruit partners, acquire users, and keep building, made continuing difficult to justify. Funding applications to TIA and Propella went unanswered.
The idea was sound. The timing and resources just didn't align.
Zero Waste Bites never launched but it taught me more than any client project has. Building a product from scratch with no brief, no designer, and no team forces a different kind of thinking. Every decision had to be justified, not to a client but to the problem itself.
The cart was the hardest thing I have ever built. The database work was entirely new territory. And the business side, identifying partners, thinking about acquisition, applying for funding, was a reminder that good technology is only one part of making a product work.
If I were doing it again I would have focused on a much smaller MVP, one store, one product type, one suburb, and proven the model before building the full platform. The temptation to build everything at once is real, especially when you are excited about the idea. Shipping something smaller sooner would have been smarter.