I started this week with two slices of cold pizza and a sandwich that may or may not have had chicken in it. All because I decided to try eating only what I could find on food-waste apps. No extra groceries and no sneaky Uber Eats orders. Just me, my phone, and whatever I could scavenge on TooGoodToGo, Flashfood, and FoodHero. I wanted to see if these apps could actually feed me for a week and whether I’d save money doing it.

But first things first, if you’ve never used these apps before, here's a quick lowdown. Flashfood, FoodHero and TooGoodToGo all list food that’s close to its expiry date, and sell it at a discount of 30–50%. You scroll through nearby listings on the app, pay online for the food, then go pick it up from the store.

Flashfood was founded in Toronto in 2016 and partners with grocery chains to find you deals on soon-to-expire produce, meat, and packaged items. FoodHero launched in Quebec and works mostly with Sobeys and IGA to offer discounts on grocery items. TooGoodToGo started in Denmark in 2015 and now operates in over 17 countries. It’s best known for getting “surprise bags” from restaurants and bakeries, at steep discounts just before closing.

Now, let me show you what actually happened during the week, with receipts.

Everything I Ate and Regretted In a Week of Food-Waste Apps

I went into this week hoping to save food and money, but came out the other side wildly more suspicious of peaches and armed with a freezer full of naan and muffins. Here’s a day-by-day diary of what I ate, what I couldn’t save and what nearly took me down.

Tuesday: Cold Pizza Came with Warm Regret

My week didn’t start on Monday because I was deep into a sci-fi novel I couldn’t put down. So we begin on Tuesday. I had a concert that evening, which meant I had no time to cook. Not that I had groceries anyway. I turned to TooGoodToGo. I’ve seen Reddit users rave about scoring full meals from the app, so I figured it was worth a shot. 

invoice from toogoodtogo for an order from Carolina Pizzeria

My first meal was a mystery bag from Carolina Pizzeria. Inside were two cold pizza slices and a sandwich of sorts. It looked like someone placed plain chicken (or maybe turkey?) deli slices between bread and called it a day. No sauces or veggies. Just vibes. I had the Margherita slice and half the sandwich for dinner. Heated up, the pizza was actually solid with a chewy crust, real basil and decent cheese. The sandwich would’ve worked better with my beloved sriracha mayo, but it still got the job done. 

Wednesday: Flashfood Gave Me Peaches And Trust Issues

Lunch was the leftover pizza slice and the other half of the sandwich from Tuesday. The sandwich felt like eating the memory of a meal.

For dinner, I got ambitious. I ordered two fresh produce boxes and one pack of chicken wings from Flashfood, hoping for a balanced haul of fruits, veggies, and protein. Reality hit when I opened the boxes at the store and saw that most of the mangoes, tomatoes and peaches were already rotting in the boxes. I tossed most of the fruits right there.

invoice of order from flashfood

Here’s what I managed to save- one onion, a pile of potatoes, four oranges, nine bell peppers, two eggplants and an apple. The frozen chicken wings were ten days past the best-before date. I usually treat those dates as suggestions, not rules, so I thawed the chicken. One whiff and they went straight in the bin.

I ended up making fried rice with four of the peppers, out of which one betrayed me from the inside. A fitting metaphor for how the day had gone.

Thursday: Just Me and My Emotional Support Eggplant

With all the mangoes and peaches turning out rotten from Wednesday’s food haul, my fruit salad plan went straight to compost. Breakfast was a couple of oranges. Lunch was leftover fried rice from the night before. I wanted to bulk it up with eggs, but couldn’t find them on any of the apps.

plate of fried rice cooked with bell pepper from flashfood

For dinner, I planned to grill the two eggplants with some seasoning and call it a night. But by the time I started cooking, one of them had already gone bad. I roasted the one that was still hanging on, added half an onion, and blended it into a dip to eat with rice. Surprisingly and luckily, it turned out good! A silver lining in a week of wrinkly tomatoes and expired chicken.

an eggplant, onion and knife laying on a chopping board

Friday: Cooking Became A Race Against Food Rot

The fruit situation was getting bleak, but I still had an apple and an orange left for breakfast. Lunch was the last of the eggplant dip from Thursday. I was weirdly impressed by how far one eggplant and half an onion could stretch. 

an apple and an orange

I wanted to cook a simple Indian curry for dinner, with potatoes, bell peppers and the rest of the onion. In what was becoming a cursed ritual, one of the potatoes and a bell pepper were already rotting when I cut into them. At this point, cooking with these veggies was a race against time. I made it work anyway. Chopped around the bad bits, threw everything into a pan, and let the spices do the heavy lifting.

three potatoes, half onion, one green pepper and half red pepper

Saturday: Sugar and Protein Entered the Chat

For breakfast, I looked for fruit or bread options on all three apps. The closest match was a TooGoodToGo listing labeled ‘baked goods,’ which I hoped meant bread. 

invoice from toogoodtogo for a bakery order from Metro

What I got was muffins, cookies, and a pack of naan. Not what I was hoping for, but I baked the naan in the oven and had it as toast. Given my love affair with sugar, I had zero complaints about the muffins and cookies. They all had the same-day expiry, so I froze everything right away.

Lunch was easy. I had leftover curry from Friday, and paired it with another piece of the naan. For dinner, I finally had some protein lined up. I’d pre-ordered two chicken breasts from FoodHero the night before and scheduled a Saturday pickup.

invoice of two chicken breasts ordered from foodhero

The chicken was pre-seasoned, so all I had to do was toss it in a pan with oil. To turn it into a full meal, I roasted three potatoes and a bell pepper from my Flashfood haul. One of the potatoes had gone bad (again), which didn’t even surprise me anymore.

Sunday: Finally, a Meal That Felt On Purpose

Breakfast was a repeat from the day before, toasted naan from my TooGoodToGo bakery haul. Lunch was the final bit of roasted potatoes, bell peppers, and chicken from Saturday.

For dinner, I cooked the second chicken breast from FoodHero. This time, I put it in the air fryer, mostly for variety but also to avoid doing dishes. I roasted the final bell peppers to go along with it, and that made for a satisfying dinner.

Monday: Ending the Challenge with A Midnight Shawarma

My last day of the challenge started on a sweet note. Breakfast was a chocolate muffin from the TooGoodToGo bakery bag. Not exactly the kind of breakfast a fitness influencer would approve of, but I’m not here to sell a meal plan. Lunch was just leftovers from Sunday night’s chicken and peppers.

By dinnertime, I needed one more meal to wrap up the week. I didn’t want to stock up on groceries again, and most listings on Flashfood and FoodHero come in bulk. So found a listing from a nearby shawarma spot on TooGoodToGo. 

invoice from toogoodtogo for ordering from What A Shawara

I got a chicken and rice bowl and a slice of pizza. The only downside was that the pickup window started at 11 p.m. Not ideal, but I was too tired to care.

So, What’s The Deal Behind These Meals?

FlashFood, FoodHero, and TooGoodToGo all run on the same basic idea of selling food that’s close to expiry at a discount. The apps don’t stock or ship anything themselves. They just connect you to the store and earn a commission from each sale. The more food you buy, the more they earn.

Even though the business model is the same, the experience of using each app couldn’t be more different.

FlashFood Gives a Wide Variety with Wild Card Results

FlashFood partners with major grocery chains like Loblaws, No Frills, RCSS, and Zehrs. Most of the listings I saw were for short-dated produce, meat and dairy, usually at 30% to 50% off. If you’re in luck, FlashFood can get you some extras like shampoo, dog food, instant ramen, crackers or cookies!

But there’s a big catch: what you see isn’t always what you get. One of the produce boxes I ordered was supposed to be a mix of fresh fruits, but what I got was mostly overripe tomatoes. 

The app’s filtering isn’t great either. You just scroll through one long feed, even if you’re only looking for specific items like eggs or bread.

The items themselves were a mix of good and bad. Most fruits and the chicken wings were already rotting and had to be tossed. Even some of the veggies that looked fine on the outside had soft spots or mould inside. The order got me through most of the week, but between the unpredictability and the food waste, I wasn’t exactly rushing to place a second order.

But credit where it’s due, they have a solid 14-day refund policy. I raised a ticket through the app, uploaded photos of the rotten food, and got my money back fairly quickly. If you’re using Flashfood, definitely take photos of anything questionable right away.

FoodHero is Essentially Sobeys’ Clearance Bin

Although the platform claims partnerships with Foodland, IGA, and other stores, I only ever saw listings from Sobeys. I also didn’t find any produce options during the week, just meat, frozen meals and bakery items. 

The app itself is cleaner and more pleasant to use than FlashFood. You can filter by category, see actual product photos, and even schedule a pickup for later in the week. That scheduling feature made it easier to plan a proper dinner. I liked how the chicken came with clear information on weight and how long it could be consumed after pickup. Another nice touch is that the app showed how much money and CO2 I saved by rescuing the food.

receipt from foodhero for consumption period and environment impact

TooGoodToGo Is Where Food Roulette Meets Mystery Box

TooGoodToGo technically has the most variety; you can find food from restaurants, bakeries, grocery stores and convenience stores. But in practice, most of the listings I came across were from cafés, bakeries, or takeout spots. Grocery store options were few and far between. 

The app doesn’t offer much detail about what you’re getting. Listings use vague labels and descriptions like “Surprise Bag” or “Assorted Groceries,” with no product photos. You do get to see the general category of the order, like “baked goods,” “grocery,” or “deli” and what might be in the order, but that’s about it. 

screenshot from toogoodtogo app, showing how an order description looks like

The ordering process was pretty straightforward. I chose a store, paid a flat fee and sent my boyfriend to pick up the orders like the reliable delivery driver he never applied to be. Be sure to show up during the pickup window or you’ll lose the food and your money. 

It’s a legit and worthy app for baked goods or a budget-friendly meal. For the right kind of user, that surprise factor might be part of the fun. 

The Million-Dollar Question: Did I Save Any Money?

Kind of, but not really. I spent a total of $41.66 on five orders across Flashfood, FoodHero, and TooGoodToGo. The full price for that food would have been $93.05, so I saved over 50%, according to the apps.

App

What I paid

Original Price (as listed on the apps)

TooGoodToGo – Carolina Pizzeria

$9.03

$24.00

Flashfood – Loblaws box + chicken

$17.44

$25.94

FoodHero – Chicken breasts (Sobeys)

$5.06

$10.11

TooGoodToGo – Metro Baked Goods

$4.49

$18.00

TooGoodToGo – Shawarma Place

$5.64

$15.00

Total

$41.66

$93.05

Sounds great, but let’s compare that to my actual grocery expenses. The week before, I spent around $50.48 on fruits, vegetables, and chicken breasts, and another $13.66 on milk, yogurt, and bread. My total was roughly $64.14.

That means I saved $22.48 through the apps... until I add the travel fare. As a proud subway rider, I didn’t think twice about picking up my FlashFood order via TTC. After wrestling with the two heavy boxes for one station, I gave up and called a $20 cab. On top of that, I used the TTC twice just for pickups, something I don’t usually do when grocery shopping. That’s another $6.70 added to the total. That brings my actual spend to $68.36, which is more than my usual expense. Maybe these apps are a cheaper option if you have a car or if your nearby store has decent stock. Mine only ever seemed to carry flavoured yogurt, bread, and enough shredded cheese to open a pizzeria. 

Will I Keep Using These Apps?

Yes, but not as a full-on grocery replacement.

There’s a lot to like about these food rescue apps. The prices are great. I discovered fun surprises like square naan, and it feels good knowing my dinner isn’t ending up in a bin. The apps also show how much money and CO2 I saved, which is a nice reminder that small choices add up.

Having said that, the week had its fair share of curveballs. Pickup times weren’t always convenient (looking at you, 11pm shawarma). I didn’t always know what to expect, with vague labels or limited listings. The product quality was hit or miss. A lot of times, I was piecing together meals from different stores across multiple apps. Even when I thought I could get all my groceries from a single store, half the items went bad before making it to the plate.

I don’t mind hopping between my local fruit mart and neighbourhood grocer multiple times a week, but this was another level of logistics. I was criss-crossing the city, juggling three apps to complete a basic grocery list, and still had to throw out half the items. If you have a car, it’s probably more manageable. But for a transit-reliant person like me, it’s a bit of a hassle.

I’d use these apps again, but with clearer expectations. They’re perfect for topping up my pantry or grabbing baked goods on a deal, but I’m not really a flexible, talented cook who thrives on chaos.  

The link has been copied!