Grocery and Recipe Simplification

terminal screenshot with title of software plus an ascii art dog

I want to have a bit of fun, and create some neat CLI tooling for my wife and I to more easily decide on what to have for the week. It’ll require some upfront work to get recipes added to my Obsidian Vault, but ultimately I’ll have that stuff forever once it’s done, so it’s an investment that’s worth my time.


What does it do?

It will be a recipe vault, randomizer, and ingredient list builder. So it’s features will be something like the following:

  • Request a specific number of randomized meals, that are in my Obsidian vault

  • pick the meals from that list that I don’t want, and replace them with more randoms until it’s good

  • ‘pickle’ that list so that I don’t need to redo it each time (and potentially some future stuff), or in event of failure.

  • After that list is satisfied, I should be able to generate a grocery list from that set of recipes

  • The grocery list should itself be an obsidian note titled {{YYYY-MM-DDD}}{{RR Grocery list}}


That Should Suffice

That feature set should produce the vault, the randomizer, and the ingredient list builder. I feel like this tool will be fun to build, and shouldn’t take too long, as I’m going to keep infrastructure requirements to a minimum, do everything in the CLI, and heavily leverage Obsidian for visualization and data storage, so my infra stuff will be File-System related, and use Obsidian Sync to make things available via the cloud.


Stuff Already Does This

Probably! I didn’t really look. But mostly I don’t want to get siloed or strong-armed into some kind of freemium crap. I just want to manage my Recipes in a cool, digital, low-effort, and long-term effort kind of way.


Obsidian is the workhorse here

This would work with or without sync, but I pay for sync, so I may as well use it as much as possible.


Timeline

I’ve already got the recipe reader finished, and the unique randomizer finished. Here is what remains:

  • Create nice-ish CLI tooling to interface with these features

  • Create ingredients list parsing utililty

    • should format ingredient amounts to a standardized format

    • should combine all ingredients from all recipes for a total amount

    • Should provide information to where the ingredients likely are in the store

  • Create recipe list ‘pickling’ functionality to serialize these recipe lists

  • create grocery list serialization to .md file with checkboxes, organized by grocery store section

I will not rush myself, I’ll give myself around 3 weeks to accomplish this stuff. Some of this work is 2-4 hours stuff, others will be a bit more because I’m goign to make some of my CLI tooling flashy.

Conclusion

By April 1 I should have a cool CLI tool that picks my weekly meals for me. No Foolin’!

Previous
Previous

Ingredients as Data

Next
Next

Result Vs. Panic in Rust