top of page

What’s in the Cupboard? Our Pantry App

3 days ago
4 min read


For the last year or so we’ve been keeping track of our food with an iPhone app called Foodshiner. It’s a good app, it does what it says, and it had become a part of the kitchen routine, scan it in, pop it away, and know exactly what’s in the fridge before heading to the shops.

But there was a catch. Every single item had to be scanned in, and with a full Ocado delivery arriving each week, that’s a lot of scanning! Bag after bag, beep after beep, and what started as a clever bit of organisation was slowly turning into a chore. And you know what happens to chores, they get put off, then skipped, and before long the app no longer matches what’s in the cupboard.

So, being a tech geek, I thought there must be a faster way, and I built one.

Has it worked? In short, yes, the whole process is now fast and efficient.


Starting with what we had

The last thing I wanted was to start again from scratch. Foodshiner lets you export a backup, so the first job was to take everything out of it and bring it straight across, every product, every photo, and everything we had in stock. That meant on day one the new app already knew 566 products, 558 of them with a photo, and our whole kitchen was ready and waiting.


So what does it do?

The Pantry app keeps track of everything in four places, the Fridge, Freezer, Pantry and Snack Drawer. Each item has a quantity, an expiry date where it has one, and a photo, so at a glance on the iPad or phone I can see exactly what’s in stock, sorted by name, by what was added most recently, or most usefully, by what needs eating first.

But the clever bit, and the part I’m most proud of, is the Ocado import, and it’s what replaces all that scanning.

When the delivery arrives I upload the Ocado order PDF and the app does the hard work:

  • It reads every item and how many were actually delivered, so anything missing from the order is left out

  • It puts each one in the right place, fridge items in the fridge, frozen in the freezer, and cupboard items in the pantry

  • It’s smart enough to know that in our house eggs live in the fridge, and crisps, biscuits & chocolate go straight in the snack drawer

  • It turns Ocado’s “use by end of Monday” into a proper date, so the expiry is set without me lifting a finger

Then I get a quick review screen, check it over, tap Confirm & Add to Inventory and the whole shop is logged in a couple of minutes, usually before the bags are even unpacked. No scanner, no beeping, no chore.


How’s it working out?

It’s early days, but so far it’s been brilliant. As I write this there are 108 items in stock across the kitchen, 54 of those in the pantry alone, which says a lot about how we shop!

Because the photos came across from Foodshiner, the app already recognises most of what we buy, so new deliveries slot in with their pictures in place. When something gets used it’s a quick tap to drop the quantity, and if something moves, say a loaf from the pantry to the freezer, it’s moved in seconds.

The real test was always going to be whether we keep using it, and with the scanning gone, I can’t see a reason why we wouldn’t.


What’s next?

There are always more ideas buzzing around my head, and a few of them could make it in. For now, it does exactly what I needed it to do, and the next time someone asks “do we have any…?”, the answer is just a tap away 📱


Tech Details

For those of you who like to know what’s going on under the bonnet, here’s how it all fits together. There’s no subscription and no third party cloud, everything lives at home on our Synology NAS, and with Tailscale it’s just as easy to check the cupboards from the supermarket aisle as it is from the kitchen.


  • The hardware: a Synology NAS, the same box that already looks after our backups, so there was nothing extra to buy

  • How it runs: the app sits in its own Docker container using Synology’s Container Manager, it starts itself if the NAS reboots, and our data is kept separate so an update never touches the inventory

  • How it’s built: a lightweight Node.js web app with a built in SQLite database, with product photos stored on the NAS alongside it

  • The Ocado import: the order PDF is read on the NAS itself, picking out the Fridge, Freezer & Cupboard sections, quantities delivered and the use by days

  • On the phone & iPad: it’s a web app, so there’s nothing to install from the App Store, just open it in Safari and add it to the home screen, complete with its own icon

  • Away from home: Tailscale runs on the NAS and on our iPhones, creating a private, encrypted connection between them, so the app is available wherever we are without opening a single port on the router, which is exactly how I like it


And while ours runs on a Synology, it isn’t tied to it. Any NAS or home server that runs Docker, QNAP, UGREEN, TerraMaster or even a small Micro PC, would do the job just as well. If you’d like something similar built and set up for your own home, it’s exactly the kind of personal project we love, so get in touch.

 
 
 

Comments


bottom of page