I made an app where the the recipe is saved as a JSON file with ingredients separate from the steps. In the steps instead of saying “mix sugar and butter” if says “mix {sugar} and {butter}” and the app adds quantity there directly. I can scale the recipe and still have the quantities inside the body (“mix sugar (100g) and butter (55g)”).
I saw cooklang but only after I made my app. It’s interesting but for me the main goal was to use existing recipes. I wanted to just take something I found online and be able to use it, not have to rewrite it. And I wanted it to handle multiple languages. When the first decent LLMs came up I did some testing and they were capable of transforming recipes into JSON so I build my app around that but the JSON had to very simple. I later managed to add couple extra features (like groups of ingredients) but it’s still way simpler than cooklang. Current LLMs could handle cooklang without issues but my app already does everything I need it to do so I’m not changing anything.
I tried recreating this style of recipe card and ended up using a JSON tree structure to store the recipe. I also added fields for a little more description so that I could generate a little more traditional lists for ingredients and instructions.
I made an app where the the recipe is saved as a JSON file with ingredients separate from the steps. In the steps instead of saying “mix sugar and butter” if says “mix {sugar} and {butter}” and the app adds quantity there directly. I can scale the recipe and still have the quantities inside the body (“mix sugar (100g) and butter (55g)”).
Nice! I thought about doing the same and then discovered https://cooklang.org/ - looks like it’s a similar approach that you describe
I saw cooklang but only after I made my app. It’s interesting but for me the main goal was to use existing recipes. I wanted to just take something I found online and be able to use it, not have to rewrite it. And I wanted it to handle multiple languages. When the first decent LLMs came up I did some testing and they were capable of transforming recipes into JSON so I build my app around that but the JSON had to very simple. I later managed to add couple extra features (like groups of ingredients) but it’s still way simpler than cooklang. Current LLMs could handle cooklang without issues but my app already does everything I need it to do so I’m not changing anything.
Ah very interesting! I found cooklang to be overkill for my needs as well but the fact that there’s an obsidian plugin resulted in me using it now.
What if the recipe steps include modifiers like ‘add half of the butter’?
It will simply say “Add half o the butter (100g)” and you have divide it yourself. It’s very simple.
BUT
Some recipes will have the same ingredient multiple times like:
Filling: - 100 g sugar - 50 g butter Dough: - 500 g flour - 100 g butterand the app will distinguish between them and put the correct amount in the correct part of the body.
Sauce or is it proprietary?
https://f-droid.org/en/packages/net.curiana.recipes/
Desktop (Linux only) version is here: https://github.com/kandrelczyk/twili-recipes/releases/tag/0.2.10
Disclosure for AI vegans: The app integrates with external LMMs to parse recipes into JSON but they can also be added manually.
sugar and butter do tend to go into sauces
I tried recreating this style of recipe card and ended up using a JSON tree structure to store the recipe. I also added fields for a little more description so that I could generate a little more traditional lists for ingredients and instructions.
https://git.tilde.town/gamerdonkey/recipes_for_engineers/
Example recipe: https://tilde.town/~gamerdonkey/recipes/lemony_olive_oil_zucchini_bread.html JSON representation: https://tilde.town/~gamerdonkey/recipes/lemony_olive_oil_zucchini_bread.json
Plus then when I want to swap out eggs for I don’t know mustard or something it’s so much easier.