Buy what you need,
without keeping count.
We buy extra just in case. You never quite know what is left, and being wrong costs more than grabbing a second one. Knowing for sure would mean keeping an inventory up to date, which costs more than the problem it solves.
Live app, in daily use. The interface is in French. Each screen is explained in English in the case study.
Four principles.
The inventory is not maintained. It fills itself.
Ticking an item off in the shop puts it in stock. The receipt says how much. Nothing new was added for you to fill in: the data already existed, it was in your pocket.
The shopping date becomes the unit of measure.
“Enough” means nothing on its own. Walou does not compare stock to a threshold, it compares it to the date of the next shop. Nothing to plan: one date is enough and the rest follows.
You state your consumption once. The app adjusts it after that.
You tell Walou you go through roughly this much a week. It corrects itself from there, by watching how often the product comes back. Nothing to keep up to date.
When Walou does not know, it shows nothing.
No default zero, no “neutral” grey dot. An absence looks like an absence, because a made up number costs more than an empty field.
Focus.
Enough, but for how long?
“Do we still have flour?” “Oh yes, we have plenty.”
From presence to date
The first version did two things: a shopping list, and an inventory of what is in the house. It answered “do I still have any”. Out shopping, in the dried fruit aisle, I wondered whether I had enough pecans for my granola for the next five days. Right then a couple walked past me. “Do we still have flour?” “Oh yes, we have plenty.” Those are two different questions, and Walou could only answer the first. I took one bag instead of two, and hoped.
Anchor the app to a date. “Enough” means nothing on its own. It only means something relative to the next shop. Walou stops saying what is there and starts saying whether it lasts. That means knowing quantities, when the first version had made exactly the opposite call: a presence, never a number.
The founding rule was that the app only states facts it actually holds. An estimate is not a fact. Rather than drop the rule, I moved it: Walou may estimate as long as the estimate shows, and as long as its ignorance shows too. It can now be wrong in front of everyone.
The same rule, in four unrelated places
Walou had a founding rule: only state facts it actually holds. The V2 turn forced it to estimate, so the rule had to move rather than break. A moved rule is only worth something if it holds everywhere, including where nobody goes to check.
It holds in four places that have nothing to do with each other, and two of them are invisible on screen. Clearing a quantity field deletes the value instead of writing zero, because a zero would claim there is none left. A line with no stated consumption shows no grey dot, which would read as an opinion. The receipt reader shows the gap between what it read and the printed total. A composite format arrives unticked rather than resolved at random.
These are not four features. They are one decision, taken again at four different depths: two in the interface, one in the data model, one in a parsing algorithm.
“Putting the shopping away and entering numbers are two separate gestures, and the second one never happens.”
From entry to receipt
This second version went live with quantities to be entered by hand. After four days of real use, I was not entering them any more. Not out of carelessness: putting the shopping away and entering numbers are two separate gestures, and the second one never happens. Without quantities, everything else goes dark. A freshly shipped version had just shown that it did not hold.
Do not make data entry lighter. Remove it. The quantity bought already exists somewhere: on the receipt, which is in your pocket as you leave the shop. Walou reads the receipt and offers what it understood. Entering it by hand still works everywhere, it is simply no longer necessary.
Precision at any given moment. Walou knows roughly, never exactly. That is the price of the data arriving on its own, and an estimate that exists beats an exact figure nobody ever types.
Two more comfortable routes, ruled out
Two more comfortable routes were ruled out. Retailer data, which would have made the app depend on a shop. And a general purpose reader, held in reserve for as long as one reader per retailer was enough.
Two days after release, a shopping trip abroad produced a receipt from a third retailer nobody had planned for. The reserve became the job in hand. That is the price of the approach, it was foreseeable, and I paid it sooner than expected.
What matters sits elsewhere, and it has not moved. Walou never fills in stock in silence. It offers what the receipt says, or the sum with what it already knew, and lets you correct. One confirmation for the whole shop, not one question per product.
“I adjusted my stock by hand every evening for three days, so that it would go down.”
From a frozen number to a falling one
The inventory showed the number I had last counted. True on the day of the count, wrong every day after. The estimate already existed, but in a small line beside it. For three evenings I corrected my stock by hand so that it would go down, without noticing I was doing the work the app exists to remove.
Let the badge carry the estimate, with a ~ to say that is what it is. Tapping it opens the field on that estimate rather than on the old count. The evening gesture becomes a confirmation instead of a count.
The last certain number. The inventory no longer shows what was counted, but what it believes is left.
A defensible rule, overruled by use
Showing the last count was defensible, and even rigorous: it was a fact, someone had counted. That is the app's founding rule applied to the letter.
But that fact had stopped moving. It said what there had been, not what was left, and I closed the gap myself by recounting every evening.
In moment 1 the rule had already been moved: Walou may estimate, as long as the estimate shows. It had been moved in the engine, not on the screen.
Maintaining quality while building at speed
Design teams are being asked to ship faster than ever, with fewer people, more surface area, and higher expectations for craft. Walou is the extreme case: one person, designing and coding. With AI, one person can hold that bar, provided they give themselves the safeguards a team supplies by default: a second pair of eyes, and someone on every layer, from back end to front.
The outcome.

In daily use, by two people.
Walou is used for real shopping, in a shared household: two accounts, one stock. That use produced these shifts, and it will produce the next one.
The horizon turned into an instrument.
Friends coming over at short notice. We need sun-dried tomatoes. Push the shopping date out two days, read how many that takes, buy that. The marker built to answer “does it last” also finds, once you move it, how much to buy. Nobody planned that gesture.
What the app still does not do.
Walou never suggests a quantity to buy. It says whether it lasts, and lets you move the date to find the right number. The answer can be read, it is not handed to you.
The real world decides, never the code.
Not one of these shifts came from reading the code. The first came from a question in an aisle. The other two came from gestures I was making at home without noticing: numbers I had stopped typing, a stock I corrected every evening. Using the app yourself every day leaves no room: it tells you what does not hold before you have had time to grow attached to the previous answer.

Swiping a row was ruled out twice: on judgement, then with the gesture measured on the device. It added nothing a tap did not already do. And a display fault stayed invisible for weeks because the mockup frame was narrower than real phones. A mockup is not a device.
“What do I need to buy? Walou.”
Walou means “nothing”, “nada”. It is the answer you hope for in the aisle, and it became the name of the app. The project started from something plain: we throw food away because we buy too much, and we buy too much because we are afraid of running out. Walou does not ask anyone to buy less. It takes the fear away, and the rest follows.









