App, first use case Vienna
Ideal food
Everything between deciding to eat and having eaten. Buying groceries is one part of it, and that part is already built.
Ideal groceries scores a product at a shop. This layer above it composes products into meals, meals into a week, and the week into one shopping list that goes to ideal groceries through the shared query port and comes back as scored offers. From those, one order, with its exact combination score against your own weights, and the break-even point where a more value-aligned line stops being worth an extra trip. The plan can be sent to somebody, which is a permissioned act on the Web of Trust rather than a link.
Three things stay honest all the way down: an ingredient nobody has scored is unknown mass in the meal, not a middle number; the weights that produced a figure travel with it; and there is no trust score anywhere, only vouch paths with names on them.
The week
A regular routine of clearly having certain meals at home, with recipe steps and a card to print. Each card says how much of the meal is actually known. Dinners every day, two weekend lunches, four oat breakfasts. Servings follow the household.
Mon 7.9.
Tue 8.9.
Wed 9.9.
Thu 10.9.
Fri 11.9.
Sat 12.9.
Sun 13.9.
Pumpkin risotto
Hokkaido, rice, and a little cheese
Nothing in this meal has a score yet.
- Ownership unknown
- Provenance unknown
- Ecology unknown
- Labour unknown
- Climate unknown
- Locality unknown
- Animal welfare unknown
- Health unknown
- Epistemic commons unknown
- Price unknown
Ingredients
- 500 g Hokkaido pumpkin not asked yet
- 180 g Risotto rice not asked yet
- 100 g Onion not asked yet
- 30 g Butter not asked yet
- 50 g Hard cheese (Parmesan) not asked yet
- 800 ml Vegetable stock not asked yet
- 30 ml Olive oil not asked yet
Steps
- Dice the pumpkin, skin on, and roast half of it in oil while the rest goes in the pot.
- Sweat the onion in butter, add the rice, stir until glassy.
- Add the raw pumpkin and hot stock a ladle at a time, stirring, for eighteen minutes.
- Stir in the cheese and the roasted pumpkin; rest two minutes before serving.
Your weights, in the order of the EvoBioSys values
-
Who owns the surplus: a commons, a collective, a family, or a fund?
-
Can the chain be followed from the plate back to the field?
-
Permaculture before organic before conventional; regenerative before merely less bad.
-
Do the people doing the work have pride in it, and support for their education?
-
Land and feed conversion, transport, cold chain.
-
Vienna first, then Austria, then the neighbours; transport, jurisdiction, tax.
-
Vegan production is preferred; where animals are involved, how they live.
-
No ingredient known to be unhealthy; natural rather than artificial.
-
Does buying this add honest, shared knowledge, or only marketing?
-
What it costs, against the realistic alternatives at hand.
The shopping list, handed to ideal groceries
Every line is one query: requester, purpose, category inventory, requirement food,
the search terms, a limit. The answer is whatever the app named ideal-groceries registered on
the port, and nothing here re-scores groceries. Lines the pantry covers are asked too, so the meal can be
scored as the household usually buys, but they are not ordered.
| Line | Needed | At home | To buy | Answer from ideal groceries |
|---|---|---|---|---|
| Apples apfel-hafer | 960 g | 240 g | not asked yet | |
| Bread herbstsalat, zwetschkenknoedel | 180 g | 120 g | not asked yet | |
| Brown lentils mangold-linsen | 160 g | 160 g | not asked yet | |
| Butter zucchini-palatschinken, kuerbis-risotto, krautfleckerl, zwetschkenknoedel | 120 g | 20 g | not asked yet | |
| Chard (Mangold) mangold-linsen | 400 g | 400 g | not asked yet | |
| Eggs zucchini-palatschinken, herbstsalat, zwetschkenknoedel | 5 pc | 2 pc | not asked yet | |
| Fleckerl pasta krautfleckerl | 200 g | 250 g | covered | not asked, the pantry covers it |
| Fresh herbs (parsley, chives) zucchini-palatschinken, ofengemuese | 40 g | 20 g | not asked yet | |
| Garlic erdaepfelgulasch, mangold-linsen, ofengemuese | 40 g | 30 g | 10 g | not asked yet |
| Hard cheese (Parmesan) kuerbis-risotto | 50 g | 50 g | not asked yet | |
| Hokkaido pumpkin kuerbis-risotto, ofengemuese | 700 g | 500 g | not asked yet | |
| Milk apfel-hafer, zucchini-palatschinken | 1.4 l | 300 ml | not asked yet | |
| Olive oil erdaepfelgulasch, mangold-linsen, kuerbis-risotto, ofengemuese | 150 ml | 500 ml | covered | not asked, the pantry covers it |
| Onion erdaepfelgulasch, mangold-linsen, kuerbis-risotto, krautfleckerl | 820 g | 300 g | 520 g | not asked yet |
| Peppers ofengemuese, herbstsalat | 360 g | 200 g | not asked yet | |
| Plums (Zwetschken) zwetschkenknoedel | 300 g | 300 g | not asked yet | |
| Potatoes (Erdaepfel) erdaepfelgulasch, ofengemuese, zwetschkenknoedel | 2 kg | 500 g | 1.5 kg | not asked yet |
| Pumpkin seed oil (Kernoel) herbstsalat | 20 ml | 20 ml | not asked yet | |
| Quark (Topfen) zucchini-palatschinken, ofengemuese | 360 g | 160 g | not asked yet | |
| Risotto rice kuerbis-risotto | 180 g | 500 g | covered | not asked, the pantry covers it |
| Rolled oats apfel-hafer | 480 g | 500 g | covered | not asked, the pantry covers it |
| Sugar krautfleckerl | 10 g | 500 g | covered | not asked, the pantry covers it |
| Sweet paprika powder erdaepfelgulasch | 32 g | 50 g | covered | not asked, the pantry covers it |
| Tomatoes (Paradeiser) erdaepfelgulasch, mangold-linsen, herbstsalat | 700 g | 100 g | not asked yet | |
| Vegetable stock erdaepfelgulasch, mangold-linsen, kuerbis-risotto | 2.4 l | 500 ml | 1.9 l | not asked yet |
| Wheat flour zucchini-palatschinken, zwetschkenknoedel | 260 g | 1 kg | covered | not asked, the pantry covers it |
| White cabbage krautfleckerl | 500 g | 500 g | not asked yet | |
| Yoghurt apfel-hafer | 640 g | 160 g | not asked yet | |
| Zucchini zucchini-palatschinken, ofengemuese | 500 g | 300 g | not asked yet |
One order
One interface where everything can be ordered, telling you the exact combination score of the order and where the break-even sits. Scores are mass-weighted like a meal; the total says when a line has no price.
Ask ideal groceries first; the order is built from the answers.
Send the week to somebody
The plan encodes what a household eats, so it passes your own permission gate with the recipient as the
asker, category preferences, and inventory if the pantry goes along. The outcome
names the rule that fired and the vouch path, as names.
HelloFresh, from commons-sourced farmers
A recipe kit is a weekly rhythm plus recipes that fit what arrives. The commons version takes the produce from a CSA share and the staples from a food coop, and leaves out the logistics company.
Layer by layer
- Seasonal vegetables from a commons producer exists
CSA harvest shares such as GeLa Ochsenherz
Weekly, June to December as a box, year round as free pick-up. What arrives is what the field gave.
- Handover inside Vienna exists
CSA pick-up points at Naschmarkt and Praterstern
No home delivery in the HelloFresh sense, and no cold-chain van; the member walks or cycles there.
- Recipes that fit what arrived, portioned for the household does not exist
This page
The kit insert: a weekly set of recipes composed from the share, with the top-up list for what the share lacks. Built here as a working model, not yet fed by a real share list.
- A weekly routine of fixed meals at home partly
The household, with this plan
The share is weekly already; deciding the meals is what this page adds. Print the week and pin it in the kitchen.
- Grain, pulses, dairy and eggs from commons producers partly
Food coops (IG FoodCoops) and farm shops
Coops aggregate orders without markup, but they are not kits and most need a member on duty. Whether a coop near the household carries what the recipes need is unknown until asked.
- A logistics company portioning and shipping does not exist
Nobody, on purpose
This is the part of HelloFresh that is not recreated. The ownership question (HelloFresh SE, listed in Frankfurt) is the reason the commons version exists.
- Every ingredient scored against the person's own weights partly
ideal groceries, asked through the query port
Products from shops are scored on the groceries side through the live adapter (a snapshot of 20 products). CSA share items are not in that catalogue yet, so they answer nothing on offer and stay unknown mass in the meal.
This week against an early-September share
The share contents are an estimate (confidence 0.5): the seasonal calendar poster exists as a PDF that could not be read as text during this build, and only pumpkin was confirmed as an autumn item from the food lexicon.
From the share
- Apples240 g
- Chard (Mangold)400 g
- Fresh herbs (parsley, chives)20 g
- Hokkaido pumpkin500 g
- Onion500 g
- Peppers200 g
- Plums (Zwetschken)300 g
- Potatoes (Erdaepfel)1 kg
- Tomatoes (Paradeiser)100 g
- White cabbage500 g
- Zucchini300 g
Top up elsewhere
- Bread120 g
- Brown lentils160 g
- Butter20 g
- Eggs2 pc
- Garlic10 g
- Hard cheese (Parmesan)50 g
- Milk300 ml
- Onion20 g
- Potatoes (Erdaepfel)500 g
- Pumpkin seed oil (Kernoel)20 ml
- Quark (Topfen)160 g
- Vegetable stock1.9 l
- Yoghurt160 g
In the share, unused this week
Unused share is the kit's real design problem: next week's recipes start from here.
Anchors, verified as far as this build could
- GeLa Ochsenherz csa, Gaenserndorf, 30 km north-east of Vienna
- A CSA (Gemeinsam Landwirtschaften) since 2011, the first in Austria to use the term. Wikipedia (de), Solidarische Landwirtschaft, accessed 2026-09-05 [C];GeLa Ochsenherz, farm website, undated, accessed 2026-09-05 [B]; confidence 0.80
- A harvest share is about a three-hundredth of the harvest, which puts the membership near 300 shares. GeLa Ochsenherz, farm website, undated, accessed 2026-09-05 [B]; confidence 0.75
- Two share types: a vegetable box from June to December, or free pick-up year round at Naschmarkt, Praterstern and the farm. GeLa Ochsenherz, farm website, undated, accessed 2026-09-05 [B]; confidence 0.85
- Members share the harvest and fund fair wages; they are not customers and do not buy vegetables. GeLa Ochsenherz, farm website, undated, accessed 2026-09-05 [B]; confidence 0.90
- SoLaWi leben network, Austria-wide
- The Austrian CSA network, listed by Wikipedia as the national umbrella at solawi.life. Wikipedia (de), Solidarische Landwirtschaft, accessed 2026-09-05 [C];SoLaWi leben (solawi.life), Austrian CSA network, unreachable on 2026-09-05 (connection refused) [C]; confidence 0.55, below the floor
- Over 50 CSA farms were active in Austria by early 2022. Wikipedia (de), Solidarische Landwirtschaft, accessed 2026-09-05 [C]; confidence 0.60, below the floor
2 claims here sit below 0.7 and are shown as such rather than dropped.
- IG FoodCoops food-coop-network, Austria-wide, started in Vienna
- About 120 self-managed, no-markup buying groups in Austria in 2026; the first two founded in Vienna in 2007. IG FoodCoops (foodcoops.at), undated, accessed 2026-09-05 [C]; confidence 0.60, below the floor
- A Vienna-only count could not be established. IG FoodCoops (foodcoops.at), undated, accessed 2026-09-05 [C]; confidence 0.60, below the floor
2 claims here sit below 0.7 and are shown as such rather than dropped.
- Die Tafel Oesterreich food-rescue, Vienna wholesale market, nationwide reach
- Rescues food and gives it to people in poverty through social institutions, since 1999. Not a consumer channel, and it should not become one. Die Tafel Oesterreich, undated, accessed 2026-09-05 [B]; confidence 0.75
Special editions
Ready-made ordering, pregnancy, specific diets and bulk storage, written up on the groceries site and acting on the week here. The default household has no cellar; the model carries one.
- Pregnancy acts on meals
Flags every recipe step and ingredient on the exclusion list (raw egg, raw-milk cheese, raw meat and fish, alcohol) and shows a cooked-through alternative where one exists. The groceries layer can only filter products; the meal is where the raw egg actually appears.
The groceries write-up - Specific diets acts on meals
Vegetarian and vegan filters run on recipes before any scoring. Filtered-out meals stay visible as a count so the week does not quietly shrink.
The groceries write-up - Bulk and cellar storage acts on shopping list
The household storage profile decides which lines may be bought for months rather than for the week. The default household has no cellar, so the switch is off until somebody says otherwise.
The groceries write-up - Ready-made meals acts on ordering
A slot in the week can be filled by an ordered meal instead of a recipe. The order then goes through the same one-interface bundle and the same criteria, with the kitchen doing the prep scored on labour like any other producer. Not built beyond the slot type; there is no scored ready-made provider yet.
The groceries write-up
Services to replicate or integrate
The ones the Tana node names, with what happens to each. Where a fact the values need could not be established, it is shown as unknown.
| Service | What it is | Stance | In the food layer | Sources |
|---|---|---|---|---|
| HelloFreshmodelled | Weekly recipe kits shipped by a logistics company. HelloFresh SE, Berlin, stock-listed, operates in Austria. | replicate | The commons kit above: same weekly rhythm and recipe cards, produce from a CSA share, no logistics company. Ownership is the first criterion in the values and the reason to replicate rather than integrate. | Wikipedia (de), HelloFresh; hellofresh.at, accessed 2026-09-05 [C] confidence 0.85 |
| CSA harvest sharesmodelled | Members fund a farm and share its harvest. GeLa Ochsenherz near Vienna since 2011; over 50 farms in Austria by 2022. | integrate | The share is the produce layer of the kit. The split between share and top-up is computed on this page from an estimated September share. | GeLa Ochsenherz, farm website, undated, accessed 2026-09-05 [B] Wikipedia (de), Solidarische Landwirtschaft, accessed 2026-09-05 [C] confidence 0.75 |
| Too Good To Gonot-built | Surplus bags from shops and restaurants, paid in advance, picked up at closing time. Founded 2015 in Denmark; in Austria since August 2019; privately held. | integrate | A rescue bag is a wildcard meal: the week would hold a slot whose ingredients are unknown until pick-up, scored afterwards. Integration would need the company API, which is not public. | Wikipedia (de), Too Good To Go, accessed 2026-09-05 [C] confidence 0.70 |
| Delivery platforms (Lieferando, Foodora, Wolt)not-built | Restaurant delivery on demand. The Tana node asks to prefer whichever treats its riders best, specifically by supporting their education. Unknown: Rider employment and education support in Austria. | both | The ready-made edition would rank platforms on the labour criterion. That needs a fact this build could not establish: how riders are employed in Austria and whether any employer supports their education. | Wikipedia (de), Lieferando, accessed 2026-09-05 [C] Gewerkschaft vida, 2026-08-31, accessed 2026-09-05 [B] confidence 0.40, flagged |
| Food coopsnot-built | Self-managed buying groups without markup. About 120 in Austria in 2026, the first in Vienna in 2007. | integrate | The staples layer of the kit. Would need each coop's order list as a query provider; none exists yet. | IG FoodCoops (foodcoops.at), undated, accessed 2026-09-05 [C] confidence 0.60, flagged |
| markta (online farmers market, Vienna)not-built | Founded 2018. Its own site announced an insolvency filing in 2026. | caution | A reminder that the alternative landscape is thin and fragile. An interface that only ever routes to the discounter because everything else closed is not the ideal; the relative alternative score has to say when that happens. | markta.at, own notice, undated notice, accessed 2026-09-04 [B] confidence 0.60, flagged |
What is real in this build
Registered on the query port
ideal-foodserves food this appideal-groceriesserves food live adapter
Real, stubbed, missing
- Real: the contract, the meal composition, the plan, the shopping list, the order arithmetic, the permission gate and the vouch paths (shared in-memory stubs from the interop package, swapped for the Web of Trust by replacing one module).
- Stubbed: identities and vouches are a fixture graph; there is no persistence; sending opens a link rather than delivering a message. The groceries answers come from the live adapter's vendored snapshot (20 products, 68 offers); ingredients outside it answer nothing on offer.
- Missing from the contract, found twice:
QueryOutcomehas no slot for aScoreandQuerySpechas no slot for the asker's weights. Both this app and ideal-groceries carry the score on the resource as an extension field and recombine it against the asker's weights on arrival. The next interop version should addscores?: Score[]to the ok outcome andweights?: Weightsto the spec, additively. - Missing from the vocabulary: stewardship, source abundance, production method (permaculture before organic), packaging circularity, seasonality and additives are measured on the groceries side and have no
CriterionId. Seasonality is the one a meal planner feels first. - Unknown by design:
healthcomes back unknown on every grocery offer because the source never rated it. It is shown as unknown and never as zero.
Sources
- GeLa Ochsenherz, farm website, undated, accessed 2026-09-05 [B]. Defines a harvest share as about a three-hundredth of the harvest; lists Naschmarkt, Praterstern and Gaenserndorf as pick-up points.
- Wikipedia (de), Solidarische Landwirtschaft, accessed 2026-09-05 [C]. Names GeLa Ochsenherz, 2011, as the first Austrian CSA and counts over 50 Austrian CSA farms by early 2022, citing solawi.life.
- SoLaWi leben (solawi.life), Austrian CSA network, unreachable on 2026-09-05 (connection refused) [C]. Cited via Wikipedia only; the site itself did not answer during this build.
- IG FoodCoops (foodcoops.at), undated, accessed 2026-09-05 [C]. About 120 food coops in Austria in 2026; the first two founded in Vienna in 2007; the interest group founded 2017.
- Die Tafel Oesterreich, undated, accessed 2026-09-05 [B]. Association rescuing food for people in poverty since 1999, based at the Vienna wholesale market. wienertafel.at redirects here.
- Wikipedia (de), Too Good To Go, accessed 2026-09-05 [C]. Founded 2015 in Denmark; surprise-bag model; Austria launch August 2019; privately held with outside investors. The company site answered 429 twice.
- Wikipedia (de), HelloFresh; hellofresh.at, accessed 2026-09-05 [C]. HelloFresh SE, Berlin, stock-listed in Frankfurt; hellofresh.at is a live Austrian storefront.
- Wikipedia (de), Lieferando, accessed 2026-09-05 [C]. Takeaway.com European Operations B.V. behind the Austrian brand. Direct rider employment is described for Germany only; nothing for Austria.
- Gewerkschaft vida, 2026-08-31, accessed 2026-09-05 [B]. Article "Rider:innen brauchen bessere Arbeitsbedingungen" on the EU platform-work directive. No collective agreement text was reachable during this build.
- markta.at, own notice, undated notice, accessed 2026-09-04 [B]. The site states the company must file for insolvency because of the economic situation. Founded 2018 per the same site.
- die umweltberatung Wien, Saisonkalender poster, 2026-09-04 [B]. The poster exists as a PDF; its table could not be read as text during this build. Only pumpkin was confirmed as an autumn item from the food lexicon.
- Ideal Groceries, editions page (EvoBioSys), 2026 [B]. Pregnancy exclusions there cite AGES, BZfE, BfR and EFSA 2015 (all tier A).
- Jakob Possert-Bienzle, Tana node PGD3Kek2sMtZ (ideal groceries), 2026 [C]. The requirements this page is built from, in his own words.