Some thoughts about building an open recipe database

Lately, I have been thinking about creating an open recipe database. It is just not possible to find any good quality recipes database. Often, the website indexing recipes does not expose its data using any kind of API. When it does - and very few does - the recipes are stored in a data format close to unrestricted plain text.

Advanced queries

Most recipes websites are offering very primitives search possibilities. For instance, Marmiton, the most complete french recipes database offers the following search options:

  • Meal type
  • Difficulty
  • Cost - using cheap, average and expensive options
  • Vegetarian friendly
  • Keywords

As you can see, this search is really primitive, I personally need some more criteria.

Disclaimer

There is a notable exception: Big Oven.

This website provides a lot ofrecipes, the ux and search function are really sweet and all the data is accessible using a REST API.

The problem with that website, besides being quite buggy (I have not managed to get my API key because of a login related bug…) is the very restrictive data license.

Basically, you cannot use this data for anything else than sending users to their website.

Features we need

After putting some thoughts on these criteria, I have come up with that list of features of the ideal recipes web index:

  • Ingredients list: I want to be able to specify a ingredients list in which the recipe will be created on. I also want to exclude some ingredients from the search results because my diet does not permit to eat these ingredients, because I do not like this ingredient, etc.
  • Equivalence class between ingredients: I want to be able to know if soy creme is an acceptable substitute to crême fraiche. In a more general way, I want to be able to determine the substitutes and their quantity substitution for each ingredient.
  • Hierarchy/Relationships/Categories of ingredients: Is my meal balanced? Is my meal free of meat? Is my meal kasher/halal? Does my meal contains fish? What kind of rice should I use for this particular meal?
  • Measurement scales equivalences: what the fuck is a cup? I want grams!

So yeah, seems like a lot of work to do…

Problem we are actually facing

It seems that every recipe index website is getting killed by a new one which is more user friendly or has more feature every 5 years.

There is no open database of recipes. Every time a new website is created, the data needs to be scraped or created from scratch. We need to separate the data (actual recipes) from the processing/presentational part or we will keep creating some crappy database from scratch every 5 years.

I think it is time to create something more durable: an open recipe database.

More article about this index are about to come.