One thing I'm looking forward to adding is tagging recipe steps as do-ahead, mis en place, early, late, and last minute. This will make it a bit easier to think through the mental gantt chart I use when cooking a dinner composed of a bunch of dishes. Also a simple scraping utility for importing.
The thing all these have in common is that they're reactions against the festering cesspool of hostile-UI, low-information-density, pages full of affiliate links that are today's cooking sites. (NYT cooking very much excepted.)
I wish we had a better mechanism for including more people in the project of iteratively refining the way we think about life tasks and improving the tools we use to think with. I think this is a great conversation and wish more people who like to cook could participate.
This is a consistently excellent resource, and I love the many small, essential bits of polish they've applied to their iOS app, like preventing your iPhone's screen from turning off when you're reading a recipe.
https://news.ycombinator.com/item?id=19221446 | Remembering a Programming Language that Helped Shape the Digital New York Times
https://news.ycombinator.com/item?id=20877047 | 25 Years of New York Times Website Design History
https://news.ycombinator.com/item?id=20940209 | New York Times Developer Portal
Something I'm surprised I haven't seen mentioned is Serious Eats. J Kenji Lopez-Alt does some absolutely excellent recipes (hello Halal Cart Chicken & Rice).
Serious Eats is good too.
I used to use Epicurious quite a bit back when they were a pretty early-on serious website for recipes. But with the demise of Gourmet and other sites like the NYT upping their game, I don't consider them top-tier any longer.
(Though, speaking of reuse, Kimball basically went and made an almost clone of CI that IMO was obnoxiously clode to a direct copy.)
The main thing I wanted to optimize was menu planning. So I wrote a genetic algorithm which will generate a menu, add the score, mutate the menu in some way, and iterate. In my database I have a rough price per ingredient, and my families enjoyment of the recipe (though I have kind of a lagging gradient which reduces the score per recipe to prevent duplication). I also have included in my algorithm what I call slots. So something like a lasagna will take 4 slots where as a stir fry will be 1 slot. I sync my schedule and break it down to slots. This allows the algorithm to fit the recipe to the time available. I dont score slots though otherwise short recipes always win.
Since the algorithm optimizes based on the week, but keeps a running inventory it's pretty good at maximizing my grocery bill and family enjoyment. My average grocery bill is between $40-$60 a week. And I cook 5 times a week.
Although my goal was to find recipes that shared ingredients to cut back on wastage. I used a constraint solver (https://developers.google.com/optimization) and asked it to produce 5 recipes requiring the minimum number of ingredients, and was rather amused that the first run included such classics as "boiled egg", "butter potato" and "toast".
allrecipes.com has data attributes on their ingredient list. seriouseats.com has css classes on their ingredients. those are two that i just checked on the spot.
Me too, although I'm solving a different problem: organization. I'm not so concerned with cost or nutritional value. In the end I went with a somewhat simpler route: LaTeX (well xelatex). I built a couple document classes, one creates a letter sized document and one creates a 4x6 index card sized document. I used the former to concatenate all the recipes into a master PDF as well. This "master" PDF contains the recipes as well as indexes (by author, by ingredient).
I've tried tablets in the kitchen, but ultimately for me the most convenient thing was to just tape a printout onto a cabinet door and go from there.
anyway, a word of caution about open sourcing. people are quick to scream that you make the source available. but what about this? an article/blog describing in more details how you solved the problem instead? few people ever ask that.
what i saw with open source is, once you put the code out there, people will start requesting features, making you carry the burden of maintenance, etc. but ofc there are good things too. i just haven't seen it with small niche projects.
my 2 cents.
It's easier for me to "listen" to a recipe and pause as needed, vs. to look it up. It's a more casual approach though - no constraint optimisation, or anything like this, but I find it works great for me. Also I can share a recipe this way with someone else by just sharing the recording p2p.
And I noticed how much is thrown out despite attempts to not do so, because different items have different shelf life.
My bill also doesn't include alcohol. I've given up drinking mostly to boost my night-time productivity, but I'll buy wine in bulk which I mostly use for cooking, though I might have a glass with dinner.
Rice, flour, beans, lentils, etc should be the bulk of your staples. They are also dirt cheap. Remainder of the money can be used on fresh vegetables.
Within the last year, I started down the route of eating out less and being more conscientious of what I was cooking. Google searches are a pretty good resource for finding recipes with one caveat, you can't store the recipes. I would save my favorites to a folder in my browser, but eventually, that folder became 120+ recipes links and ver time consuming to filter through when I wanted to make something.
I built FeastGenius to solve the problem of finding and organizing all those recipes. With the site, you can do the following.
- Add your own recipes.
- "Clip" recipes from anywhere on the web.
- Find a recipe on the site you like? You can save it to your profile so you can easily find it later.
- Organize recipes into collections and share them with anyone.
- Search from 20,000+ recipes.
- plus filter by calories or macros (if your an iifym nerd like me).
- Since I'm on reddit way too much I thought it would be fun to use the same algorithm they do for
organizing trending posts.
I realize there might be some copyright issues, but for me, as a user, they don't exist when I copy recipes to my own private collection, so I would expect any online version of it to behave the same way. It needs to keep full versions of every recipe and an optional "source" link.
I'm not interested in calorie counting as a central feature, so the way the site functions right now is not dramatically better than just keeping a plain bookmark list.
EDIT - I can formalize my main gripe now.
Above, you describe the site as a way to _organize my recipes_, where in reality it's more of community _index_ of recipe _links_ with some diet-oriented extras. That's the main issue. It doesn't actually do well what you describe at the top, but it does well some other thing that's mentioned at the bottom.
That being said, I do like this idea, and will see if I can introduce my mom to the site in a bit.
How do you intend to keep this site alive long-term?
> How do you intend to keep this site alive long-term?
Currently, the site is being hosted on Heroku so I can scale it as needed. I'll likely move it to AWS in the nearish future, but for now, Heroku is doing the trick. As far as longevity goes I do daily DB backups so in the case of an issue I can do a restore. If the site picks up in popularity I could also move to doing hourly backups.
Here's one that I found but there are quite a few out there:
My current system is: when i have found and tested a good recipe, i copy/paste it into an email and email to myself, with a headline prefixed with “recipe”, for example “recipe: soto ayam”. Copy pasting recipes is important, as websites blog posts disappear quite often.
Email is always with me, gmail has a very good search engine. Content is free form.
Usually i can just copy/paste (missing) ingredients into the google keep list i share, for groceries, with my better half.
Additionally i can share recipes with her by mailing them, although sharing links would be more convenient.
Will try it out later this week when i probably come up with a never before tried recipe.
> "Clip" recipes from anywhere on the web.
I always wondered if recipes would be, like most content, copyrighted. Have you looked into this?
Also, did you try using pen and paper? This sounds silly but when I am fasting, I am get cranky. Writing it down helped me stay focused and not give my self yet another excuse to break the fast.
How would you compare your service to theirs?
There have been a lot of apps in this space which were better but also subsequently abandoned by the developers. Almost all of my friends switched over to Paprika because they got tired of switching again and again.
1. Clipping recipes from different websites can be quite challenging because of the varying html structures. I recently tackled this problem and I'm curious what method you used to find recipe content within an html page? I ended up checking to see if the website followed a Recipe schema  and if not use a mix of heuristics to try identifying if a line of text was an ingredient. I also was considering using machine learning in there, but couldn't figure out a good way to incorporate it.
2. Is there a reason you don't include the instructions of the recipe on your website?
Awesome to see some fresh sites in this space. I built Saffron  which is focused on organizing your recipes into digital cookbooks.
> Is there a reason you don't include the instructions of the recipe on your website?
Yes, when users clip recipes from another source I want to make sure that users need to navigate back to the original page to see the instructions. This is to ensure the original author gets credit for it. If a user adds a recipe themselves to the site then it will show the instructions. Here is an example of a recipe with instructions for demo purposes, https://www.feastgenius.com/recipes/everything-nice-jerk-chi....
I'm working on adding a $5/month subscription.
It would also be great to be able to save known substitutions - like sometimes I have to use plain flour and baking powder rather than self-raising because it's what I have in the cupboard.
Having a sliding scale for the number of people you intend to serve would also boost the usability of the site.
I do a lot of baking (mostly things made of sourdough) and always appreciated that King Arthur offers the conversion on their recipes; So much so that I'll generally check there first. When I'm working out a new recipe from multiple different ones, I convert them all to metric in my own version.
I think the only thing I don't use metric for is <= half a teaspoon, because the measuring spoon is far more efficient than trying to measure out 2g on a kitchen scale that has a minimum of ~2g. And it seems silly to me to break out the scientific scale for a 1/2 tsp of whatever.
Some of these friends without scales bake quite a lot, and do a very good job of it. I guess they're doing it on "hard mode" but they acquit themselves very well.
Cue all the Americans(who have much bigger kitchens on average) explaining why scales are unnecessary and cups are the one true way.
What I do is what I call inline recipes. It's just the instructions, but whenever an ingredients is mentioned, it also has the amount. E. g. "add two eggs". Every amount+ingredient is underlined in red. That way I can skim over the recipe easily when I'm preparing my shopping list.
The publishing industry pushes more and more cookbooks every year, and between traditional cookbooks and more recent YouTube channels, most recipes are much more fantasy entertainment than serious attempts at trying to get people to take more control over how their food is made.
The problem is that cookbook recipes distort the flow of food preparation:
Find an appealing recipe -> look up the necessary ingredients -> buy the ingredients -> take the ingredients home and make the recipe
This motivates people to purchase ingredients which are not in season, i.e. purchasing tomatoes to make tomato salad when tomatoes are not in season. This generates demand for produce which is lacking in flavor and nutrition, with an outsize environmental impact due to being shipped thousands of miles.
The proper flow is to go to a local farmer's market -> buy what is local and in-season (with a side benefit that it will be cheap, since the farmer has little control over the date of harvest and everything has to be sold before it rots) and in great quantities -> figure out how to make it once you get home, taking advantage of other produce which is in season, fresh ingredients which are available all year round (i.e. meat, dairy, eggs), and shelf-stable pantry staples.
This flow yields food which is simultaneously tastier and more affordable - but you have to learn how to cook as an independent life skill, and not constantly rely upon recipes.
 See e.g. https://www.amazon.com/Tomatoland-Industrial-Agriculture-Des...
I think the first flow is still fine, but maybe should just include going local and buying in-season items.
Knowing what you eat is important but I can understand why people are drawn to the easiness of a cookbook filled with recipes from any season.
Edit: the site seems to work differently than the app. You can search by ingredient in the app.
But don't you have to start by looking at recipes before you have fully acquired this skill? It's not like anyone is born with the ability to know what temperature to cook things at.
- remove the delayed image zoom when hovering over a recipe. It's a bit jarring and it makes the webapp feel slow when it isn't. I'd explore another way to display the information or just remove the delay entirely.
Anyone got a solution to that one?
(Edited for long sentence)
Basically, I keep one binder with my go to recipes and then have a mostly disorganized pile of paper. Also keep recipe bookmarks on pinboard and post-its in various cookbooks. Aside from that master binder, it's all pretty disorganized but that tends to be how I work in general :-)
I have not tried it but it should solve your problem
You might want to add/move up reporting to the feature list -- this recipe is currently on the front page.
When I was eating keto, I got frustrated with how bad the search functionality was on all the keto blogs, so I made a similar tool It's a keto recipe searcher/aggregator:
During this, I ended up going down a long rabbit hole trying to figure out how to parse recipe ingredients properly, and eventually spun off a separate ingredient parsing service:
https://zestfuldata.com (the service)
https://mtlynch.io/resurrecting-1/ (a 3-part blog series on how I built it)
OP - if you're interested in adding ingredient parsing to the site, I'd be happy to work with you.
Since you've got this far I'll tell you about an idea I've had in the back of my mind for years:
1) Slurp in as many recipes as possible from the internet.
2) Create a way to build a Food Framework by having a whitelist, and/or black list of ingredients.
So, for example, a great way to eat if you have diabetes is plant based low fat.
In this case you could create that Food Framework by whitelisting all vegetables and grains.
Or let's say you wanted a paleo diet, then you could blacklist grains.
Or vegan, blacklist meat, dairy, eggs, etc.
Or no peanuts (for allergies etc)
3) Save your Food Framework and then the site only shows recipes based on that framework.
I like the idea because
1) It can appeal to lots of niche groups who don't have great options for something like that.
2) If you stick to the right food framework for you it could help you get healthy, loose weight, etc.
Anyway, great work. Features you have there are great already.
If you sign up to https://nugget.one/ideas (free account) you'll be able to get instant access to this nugget:
Nugget #72: Tool to design custom nutrition plans
That has quite a lot of research and information about all of this.
Either if you (x86mitch / matthuggins) are welcome to them if of interest:
I'd be interested in chatting about it, but you dont have any contact info listed in your profile.
if you're using schema.org there's a nice filtered data dump from the common crawl available here:
If the family likes it, I will do a reflection on any further adjustments. Finally I copy it into a hard bound book with lined pages.
I don’t add too often to this book as the initial filtering keeps average recipes off.
Also, I registered an account with my email address but it never asked to validate my email address, it just created it.
So kudos, it looks nice - I hope you find success.
For meal planning:
===== October 05, 2019 =====
== Shopping List ==
* [[ShoppingList10052019:shopping_lists|Shopping List]]
===== September 28, 2019 =====
* [[ShoppingList09282019:shopping_list|Shopping List]]
====== Broccoli and Cheese soup ======
====== Ingredients ======
* 1 tablespoon butter
* 1/2 onion, chopped
* 1/4 cup melted butter
* 1/4 cup flour
* 2 cups milk
* 2 cups chicken stock
* 1 1/2 cups coarsely chopped broccoli florets
* 1 cup matchstick-cut carrots
* 1 stalk celery, thinly sliced
* 2 1/2 cups shredded sharp Cheddar cheese
* salt and ground black pepper to taste
- Melt 1 tablespoon butter in a skillet over medium-high heat. Saute onion in hot butter until translucent, about 5 minutes. Set aside.
- Whisk 1/4 cup melted butter and flour together in a large saucepan over medium-low heat; cook until flour loses it's granular texture, adding 1 to 2 tablespoons of milk if necessary to keep the flour from burning, 3 to 4 minutes.
- Gradually pour milk into flour mixture while whisking constantly. Stir chicken stock into milk mixture. Bring to a simmer; cook until flour taste is gone and mixture is thickened, about 20 minutes. Add broccoli, carrots, sauteed onion, and celery; simmer until vegetables are tender, about 20 minutes.
- Stir Cheddar cheese into vegetable mixture until cheese melts. Season with salt and pepper to taste.
I tried to log in and was told my email address had already used the service, and sure enough, a password reset had me logged in. I have no recollection of using it, so it may have been some time ago.
I like it. It doesn't quite scratch my itch, but it looks a useful tool.
I think the reactions you're getting are likely focusing on this project as a useful product or a business, not a coding exercise.
Because it's well-trod territory, with existing products that have been around for years, you're probably seeing more negativity than you would have if we all knew this was a learning project.
That said, not every step of every coder's learning process is broadly interesting to a community of people who have been programming for decades in some cases.
Usually these kinds of posts are better received when they come as a blog post about what the person's background is, what they were trying to learn, and how they felt about using those tools for the first time.