Looking at ChefSteps today, you will see a gallery of beautiful recipes, our first several courses, and a thriving community of members eager to cook better than they ever have before. We are proud of what has come thus far, but we also want to share what we hope to build in the future: a radical change in the way recipes are documented, shared, and evolved.
Superficially, presenting recipes looks like a simple problem. Cookbook authors have been doing it for decades. You have a list of ingredients and equipment, and a series of steps you apply, and dinner is made.
As soon as you scratch the surface though, there are all sorts of interesting problems and opportunities to make recipes better, both for end users and for recipe writers (which ultimately could be anyone who cooks).
Take ingredients, for example. If you look at a recipe and see an unfamiliar ingredient-maybe smoked paprika-you’d like to be able to click and quickly research it. You might want to know where you can purchase it, of course, but also where it comes from, how it is traditionally made, what substitutions to consider, what it pairs well with, whether it is gluten free, etc.
But it isn’t as simple as linking the ingredient name to a page of text. Is an apple an ingredient? A green apple? A Green Winter Pippin? What if it is peeled, cored, and diced? Dehydrated? The answers matter, and they aren’t simple: if we consider them all to be different ingredients, we’ll miss out on opportunities to share information that is consistent across the various forms. If we consider them to all be the same, you might end up making apple pie from a variety that doesn’t bake well.
Can we be both precise and tell you that you need 500 grams of diced apple, but also help you out for shopping and let you know that that is about 3 apples? Can we scale that quantity up or down in a sensible way depending on the overall context of the recipe?
It is going to take both a sophisticated model and the contributions of a passionate community to fully capture all of this complexity.
If you take a look at other websites that have tried to structure recipes, they’ve hit the same issues and basically punted into just marking up text. The semantics aren’t really captured at any deep level. There are sites that are trying to solve the ingredient problem with the help of natural language processing and text annotation tools, because they want to be able to sell you the ingredients for an existing recipe.
And what about recipe steps? Everyone writes them over and over as plain text, but they tend to have a repetitive formal structure. When professional chefs share recipes, it takes just a few words because of a shared understanding of what it means to sear or hydrate or emulsify. Can we deliver that kind of concision to home cooks and provide them with deeper explanations and videos just-in-time when they are lost? Can we help them troubleshoot when it has all gone wrong?
On the authoring side, I’ve written hundreds of recipes, and yet when a professional recipe editor works on them, they always get better. You can imagine how bad recipes are when they are written by folks who have the gift in the kitchen but not at the keyboard. Can we make it much easier for cooks to express their formulae in a way that other people can replicate?
Recipes are hard to optimize because ingredients and techniques interact, so you can’t just vary one thing while holding everything else constant – in many cases it is a full combinatorial problem, with multiple local maxima. What is the equivalent of github for recipes? Can we create that same sort of environment where recipes can be shared, co-authored, forked and improved? Can we make it possible for groups to self-organize around the development of the ultimate barbecue sauce or baguette?
We’ve made some baby steps on all of these problems – our existing recipe display lets you scale and change units on recipes in a way that, while simple, hasn’t really been done before. Users can enter their own recipes in an intuitive, structured WYSIWYG format with as much or little detail as they like, and they can “fork” an existing recipe to create their own variations. But as you can see, this just barely scratches the surface of what we plan to build. There are years worth of good problems here.
And by the way, if you are reading this and thinking “boy, I’d love to be a part of that development team,” and you’ve got the chops to back that up, we’d love to hear from you at firstname.lastname@example.org.