← All guides
Essentials

Premium food for pennies: food-rescue apps

Too Good To Go and Flashfood — surplus bakery and grocery bags at a fraction of retail.

Groceries are one of the biggest variable costs of life on the road. Two free apps — Flashfood and Too Good To Go — let you buy perfectly good food that stores would otherwise throw out, at a real discount. Here's how they actually work in Canada, what to expect, and how to make them work out of a small van fridge.

Flashfood: near-expiry groceries at a fixed discount

Flashfood partners with grocery stores to sell food that's nearing its best-by date or is excess inventory — meats, dairy, seafood, fresh produce, and prepared foods. You browse deals in the app, pay in the app, then pick up from a labelled "Flashfood Zone" (usually a fridge or shelf near the front of the store).

The headline number Flashfood and Loblaw both use is "up to 50% off." That's a ceiling, not a guarantee — some items are marked down less. But the program is large: Loblaw says Flashfood is available in about 850 of its grocery stores across Canada, that customers saved over $50 million in 2024 (and more than $238 million since 2019), and that the program has diverted nearly 86 million pounds of food from landfill (Loblaw, Jan 2025).

For nomads, the standout is the produce box: Loblaw reported customers bought over 900,000 boxes of fresh produce through the app in 2024. These are commonly sold as a $5 numbered box of mixed fruit or vegetables — hard to beat, though the price and contents vary by store and day, so confirm in-app.

Participating banners listed in the Loblaw release include No Frills, Real Canadian Superstore, Loblaws, Maxi, Provigo, Zehrs, Dominion, and Your Independent Grocer. Coverage varies by location, so check the app's store locator for your route rather than assuming. Giant Tiger is not a Flashfood partner in Canada — the "Giant" chains in Flashfood's network are US stores, so don't count on Giant Tiger here.

Too Good To Go: the surprise bag

Too Good To Go works differently. You reserve a "Surprise Bag" of unsold food — you don't choose the contents — and collect it during a set pickup window. Partners include bakeries, cafés, restaurants, and grocery stores; in Canada, Metro runs grocery Surprise Bags (meat & seafood, bakery, dairy, deli) in Ontario and Quebec (Metro). In Quebec, the Super C banner also offers bags in categories like fruits & vegetables, meats, dairy, and baked goods.

On value: Too Good To Go's marketplace page states bags are "sold at 50–75% of their contents' original retail value" (Too Good To Go marketplace page). In Canada the app is typically set so you pay roughly one-third of the stated value — so a $6.99 bag is meant to contain around $21 of food. That target is not guaranteed; community reports note bags sometimes fall short, and you can't pick what's inside. Treat it as a gamble that usually pays off, not a fixed deal.

Try it: you can get Too Good To Go here. That's our referral link — if you sign up through it we may get a small credit, at no extra cost to you. The app is free and works exactly the same whether you use our link or not. (Flashfood, above, is a genuine recommendation with no referral attached.)

Best practices for a small van fridge

This food is near its sell-by date, so the constraint isn't price — it's storage and timing. A few habits:

Plan it into your route

These apps reward being in a town with a participating store at the right time of day — which is exactly the kind of stop worth planning around. On the Muddy Tires map, line up your grocery and resupply layer with your overnight stops so a discounted produce box or bakery bag lands on a day you're already passing through. Two free apps, a bit of timing, and your grocery bill — plus a lot of food waste — drops noticeably.

Savings figures and participating stores vary by location and change over time — confirm current deals in each app before you rely on them.

Share · Reddit · X · Facebook

Guides are researched from public sources; policies vary — always confirm locally.