The fridge app
Keeps track of what is in your fridge and suggests what you can cook with it, starting with recipes where nothing is missing.

The fridge app on 4 October 2026. Nothing is blurred: it shows food in the inventory and the app's own text.
What it is
The fridge app answers one question: what can I cook with what I have? You tell it what is in your fridge, pantry and freezer by typing or speaking. It then asks Claude for recipes that use those ingredients and leave out your allergens. Recipes with no missing ingredients come first. Recipes you actually cook end up in your own cookbook.
It is built for one person on a phone and installs like an app from the browser. All text in the app is in Norwegian.
How it works
Claude writes the recipes, and the app does not trust it on allergies. Your strict allergies go into every recipe prompt. Before a recipe or substitution is saved, the app also checks it against a fixed table of allergen synonyms. If an allergen gets through, the recipe is generated again. One of these retries made a single run take over nine minutes.
Speech-to-text runs on our own machine with Whisper, so recordings stay there and there is no per-call cost. Whisper sometimes produces Norwegian words that do not exist. To help with that, it gets a list of kitchen words to expect, and the step that reads what you said is told to fix obvious mishearings. It must leave names it does not recognise exactly as you said them. Before anything is saved, the result is shown to you and you can edit it.
Dish pictures are also made on our machine, on its graphics card. The recipe model writes its own English description of the picture. If image generation fails, the app uses a Pexels stock photo. If that also fails, the recipe has no picture.
Recipes take anywhere from half a minute to several minutes. Instead of an endless spinner, the app shows a countdown based on how long earlier runs took on this machine. When a run takes longer than the estimate, the app says so.
Several plans changed along the way. The subscription token turned out to be blocked for direct API calls, so AI calls moved to the Claude Agent SDK. Henning dropped the plan to keep a history of used-up items. The first voice input failed without any error message.
What we expected, and what happened
Read it like a code review. Each removed line is something we expected, from a plan, a spec, a README or a code comment. The added line under it is what the history shows actually happened.
Expected: The spec had only Pexels stock photos for dish pictures.
Happened: Dish images are now generated on the host GPU with SDXL. FLUX.1-schnell was rejected because it does not fit a 12 GB card. The order is: generate an image, then try Pexels, then show no image. The Pexels step was verified by stopping the image service.
Expected: The spec included a 'used up' history for inventory items.
Happened: Henning dropped it. The inventory now shows only what you have right now, and items are deleted when they are gone.
Expected: Voice input would use the browser's built-in speech recognition.
Happened: Claude's first version swallowed every recognition error, so the voice button failed without any message. That was fixed, and installed phone apps now record audio and send it to Whisper running locally.
Expected: Repairing misheard words would replace the wrong word with the right one.
Happened: An early version turned the misheard 'kjøttegg' into 'kjøttdeig' but also added 'egg'. A repair now replaces the misheard word completely, and a regression test checks this.