top | item 43553031

Show HN: I vibecoded a 35k LoC recipe app

126 points| tomblomfield | 11 months ago |recipeninja.ai

Over the last 2-3 weeks, I vibecoded the recipe app that I always wished existed - recipeninja.ai . It now includes a fully interactive voice assistant so you don't need to get your dirty hands over your new iPad when you're cooking.

Background: I’m a startup founder turned investor. I taught myself (bad) PHP in 2000, and picked up Ruby on Rails in 2011. I’d guess 2015 was the last time I wrote a line of Ruby professionally. Last month, I decided to use Windsurf to build a Rails 8 API backend and React front-end app, using OpenAI's realtime API for voice-to-voice responses. Over the last few days, I also used Claude Code and Gemini 2.5 Pro for some of the trickier features. 35,000 LoC later, this is what I built!

The site uses function-calling to navigate the site in realtime as you chat with the voice assistant, which I think is pretty neat.

For the long version, see https://tomblomfield.com/post/778601470234918912/vibecoding-...

I'd love any feedback you have!

Demo video of the voice assistant: https://www.youtube.com/watch?v=kRhVc9D5kcg

Generate and edit new recipes: https://www.youtube.com/watch?v=VwwZF6dHcHg

242 comments

order

nine_k|11 months ago

Impressive!

35 kLOC is quite a bit. I wonder how straightforward and maintainable this app ended up to be. This would require taking a look at the sources. While good Rails code tends to be very terse, frontend may be quite voluminous.

> I believe within a couple of months, when things like log tailing and automated testing and native version control get implemented

This sounds a bit too optimistic, especially around automated testing, but yes, eventually this all will be there.

> an extremely powerful tool for even non-technical people to write production-quality apps

But why would non-technical people would even think in terms of log tailing and version control, any more than they think about the gauge of wiring in their walls, or the kind of modulation their Wi-Fi device use? For really non-technical audience to make a good use of such tools, it won't just take the AI to be a competent coder. The AI should become a competent architect and a competent senior SWE to translate from the product management language to the software development language, without even surfacing it when not explicitly asked. It's going to be quite a bit of a challenge to make it work, and work about as reliably as with a human team.

tomblomfield|11 months ago

Since I wrote the blog post, I actually added automated tests which Windsurf / Claude Code runs before committing any change. It saved me a lot of headaches when the LLM decided to make random logic changes for no reason.

matsemann|11 months ago

Yeah, without trying to be dismissive I'm a bit unsure where the 35kLOC are going?

ChrisRR|11 months ago

The 35k lines of code is what made me think this was either a joke or the state of vibe coding, but no it turns out they're serious

I have entire codebases of embedded software in C without the shortcuts of modern programming languages in way fewer than 35k lines

jstummbillig|11 months ago

> 35 kLOC is quite a bit. I wonder how straightforward and maintainable this app ended up to be. This would require taking a look at the sources. While good Rails code tends to be very terse, frontend may be quite voluminous.

I think people will have to recalibrate on this. The LOCs do things that you otherwise would not do. Features and details that simply would not happen — because they are too code/time intensive for most projects. It just won't matter anymore.

> But why would non-technical people would even think in terms of log tailing and version control

They won't! They won't have to. The obvious good stuff that everyone thinks the AI tool should be able do, will just work, because the people building the tools, will mostly obviously focus on making them work.

turnsout|11 months ago

Yeah 35k of code is a red flag. There's no reason for this to be that large.

iambateman|11 months ago

I also wrote a recipe simplifying website, so this is a fun project to see. Incredible work!

Probably the main value engineers have for a maintenance project is context. I wonder what happens when we fully cede context to the machines...

Today, I got a request at work for a feature ("let's offer coupons!") that I thought would take a week. That was until I found out that another engineer wrote most of the code last year, and it'd take him a day to dust off.

I'm totally onboard with, and grateful for, larger-scale experiments like this...thanks for putting the effort in. I wonder how well Cursor (or similar) would handle a situation in which large amounts of code are _almost_ being used. What if 3k LOC accidentally get duplicated? Can our automated systems understand that and fix it? Because if they can't, a human is going to spend a _long_ time trying to figure out what happened.

Over the next 18 months, I expect we'll hear a few stories of the LLM accidentally reimplementing an entire feature in a separate code path. It's a whole new class of bugs! :D

rkuodys|11 months ago

I have similar thoughts and I have come to conclusion that that's the beauty and the curse of this technology. If one relies too much on it - it's gonna be a curse. However, if technology is used with care - it's a beauty. Not only does it keep SWE jobs "secure" - it really helps a lot for those who know what they are doing.

I think in the end AI will be more advanced tool, but a tool nonetheless. Like methodologies and principles, good practises etc. - they only work if you use it with care and added thought and adaptation to your case. DRY it a great principle. But sometimes it's better if you repeat yourself. For one reason or another. And these are the the tradeoffs that human in the loop should be making imho.

GaryNumanVevo|11 months ago

> The app’s security is not perfect, but I’m pretty happy with it for the scale I’m at. If I continue to grow and get more abuse, I’ll implement more robust measures.

The app literally exposes his OpenAI key.

bdhcuidbebe|10 months ago

Managers vibe coding, what to expect?

apgwoz|11 months ago

Help! I just made the Diarrhea Walnuts (https://www.recipeninja.ai/recipe/r_N1VSPtXzCJVV3l/diarrhea-...) recipe and it turns out I am allergic to Walnuts! I am throwing up everywhere! You’re gonna be hearing from my lawyers!

selcuka|11 months ago

> Preheat oven to 950 Kelvin

I believe I'm going to need a new oven...

konfusinomicon|11 months ago

bro that is part of the vibe, you just gotta roll with it

osigurdson|11 months ago

I have a paid subscription to Windsurf using Claude. I struggle to find much utility in terms of actually writing code. It spends a lot of time trying / retrying and glitching out. I'm sure in a couple of years it will be amazing (assuming a fundamental breakthrough isn't required) but it isn't quite there yet.

LLMs are super useful but currently, the primary use case is teaching, not doing. For this reason, I think ChatGPT is really just as good as an AI enabled editor (or both if you don't mind paying for two subscriptions).

n_ary|11 months ago

To correctly vibe code something useful, I find that I need to religiously give faith to the tool and forget all about SWE principles and best practices and instead treat it like a child who makes mistakes and corrections while the adult must not intervene or admonish too much but rather nudge it to right direction.

Also vibe code has a parallel feature, while the code is generating, you are also doing live review and correcting it towards right direction, so depending on your experience, the end product can be a bad mess or wonderful piece of creation and maintenance dream.

The issue with seasoned SWE is that, the moment a mistake(or bad pattern) is made, the baby is thrown with bath water.

For a tiered app like the one presented, 35k LOC is not really that impressive if you think about it. A generic react based front end will easily need a large number of LOC due to modular principle of components, various amounts of hooks and tests(nearly makes us 25-40% of LOC). A business layer will also have many layers of abstractions and numerous impl. to move data between layers.

The vibe code shines, when you let it build one block at a time, limit the scope well and focus. Also, 2-3 weeks is a lot of time to write 35k LOC. at start of any new project, LOC generation rate is very high. But in maintenance phase it significantly falls as smaller changes are more common.

lelanthran|11 months ago

> LLMs are super useful but currently, the primary use case is teaching, not doing.

For code? Autocomplete on steroids is the killer-app.

The other things the LLMs give me are prone to be over-engineered/overly verbose code or similar.

I went through a lot of "Why are you also doing $FOO then $BAR? Doesn't seem necessary if we skip them and do $BAZ which will make one or both of those redundant" and it responding "You're right! Lets use $BAZ instead".

And giving them code to make a small change to was pointless - they would often, but not always, make an incidental change far from the point where you asked for the change.

But autocomplete? That works just great and because I've already got context of the code I am writing I can check it in (at most) two seconds and move on.

hummerbliss|11 months ago

I have very similar experience.

After seeing how people like Andrej Karparthy used vibe coding to generate applications https://x.com/karpathy/status/1903671737780498883?s=61 I realize that

you need to be clear on what you want the LLM to do break down the tasks and give byte sized tasks to llm to do specific thing and sometimes I had to tell it not go and change random files because it found the need to refactor them.

sdesol|11 months ago

Full Disclosure: I'm building a LLM chat app for software developers and domain experts

> I struggle to find much utility in terms of actually writing code.

I personally feel you need to give up some control and just let the LLM do its thing if you want to use it to help you build. It honestly does a lot of things in a more verbose way and I've come to the conclusion that it is an LLM writing code for another LLM. As long as I can debug it, I'm okay with the code, as I can develop at a pace that is truly unreal.

I finished my "Recent" contexts feature in a half a day, today. Without the LLM, this would have taken me a week I think. I would say 98% of my code in the past few months has been AI generated. You can see a real life work flow here:

https://app.gitsense.com/?chat=eece40e2-6064-46d2-9bf1-d868c...

I truly believe if you provide a LLM with the right context, it can meet your functional specs 90% of the time. Note the emphasis on functional and not necessary style. And if *YOU* architecture your code properly, it should be 100% maintainable.

I do want to make it clear that what I am doing right now is not novel, but I believe most problems are not. If the problem is not well understood, it can be a challenge like my my chat bridge feature. This feature allows you import Git repos for chatting but I will probably need to rewrite 50% of the LLM code since the solution it built is not scalable.

pzo|11 months ago

> using OpenAI's realtime API for voice-to-voice responses

Does it mean it use this expensive open ai audio model in the app? Don't you worry this will make it bankrupt if app goes viral and not monetised?

Can you share what's your strategy here, like topup $2000 open ai account as kind of marketing expenses for users to try for free? Genuine questions since planning to use openai audio API in other case and this kind of expensive price worry me a lot even if switching to new mini-transcribe and mini-tts

jumploops|11 months ago

Glad you finally found Claude Code useful, Tom ;)

On a more serious note: I've found that for debugging difficult issues, o1 Pro is in a league of it's own.

Claude Code's eagerness to do work will often fix things given enough time, especially for self-contained pieces of software, but I still find myself going to o1 Pro more often than I'd expect.

A coworker and I did a comparison the other day, where we fired up o1 Pro and Claude Code with the same refactor. o1 Pro one-shotted it, while Claude Code took a few iterations.

Interestingly enough, the _thinking_ time of o1 Pro led us to just commit the Claude Code changes, as they were both finished in around the same time (1 min 37s vs. 2+ minutes), however we did end up using some feedback from o1 to fix an issue Claude hadn't caught. YMMV

rsaz|11 months ago

Is the key feature here just the voice control? I’m wondering what you feel is missing from other popular recipe websites/trackers, and why I would choose to use this over something with more care put into it.

Or, was this mostly just an exercise in engineering/testing AI?

tomblomfield|11 months ago

Hands-free voice control and being able to access recipe ingredients and steps without 5 pages of SEO-optimised prose.

vander_elst|11 months ago

I think this needs a NSFW added to the title, on the first page at the moment there are at least 50% of NSFW recipes.

jorisnoo|11 months ago

I love how the top recipe shows a literal stuffed lamb, e.g. a plush toy. Lots of the generated images have an early deep dream vibe

a_c|11 months ago

While I'm not going to make any food according to the recipes yet, the recipes gave me good chuckle. I'm always amazed by the creativity people have, a feeling that dissipates the moment I know something is AI generated. Comprehensive JavaScript Tutorial https://www.recipeninja.ai/recipe/r_VDcP5QiJjAPVhV/comprehen... is my favourite so far.

nwroot|11 months ago

I can tell. Ingredients. 1 skillet.

ttd|11 months ago

Is this a serious thing? If so, I'd like to know where I can purchase the wasp meat required to make this recipe: https://www.recipeninja.ai/recipe/r_NYrbOKZEyqrp7r/wasp-meat...

omgmajk|11 months ago

This is the funnies thing I have read all week. :D

Yiling-J|11 months ago

I think the recipes on your site are AI-generated? If you're looking to generate a large number of recipes, I highly recommend my tool: https://github.com/Yiling-J/tablepilot. It's specifically designed for this kind of task. Don't forget to check out the examples folder, I use recipes as examples a lot.

tombert|11 months ago

I still haven't done the AI vibe coding, but I think I get a similar effect with the Conjure plugin for Neovim with Clojure.

Being able to type out and immediately execute it directly in the window, and even have your code replaced by the output, is kind of life-changing. It fundamentally changes the way you write code, like the REPL isn't just a quick way to test your code, but a direct helper to test the stuff that you right.

I did a project in Clojure recently, heavily using Conjure, and then my next project was in Rust. Rust has nice Neovim plugins as well, but it still kind of felt like a step backwards; I found myself reaching for the "automatically evaluate" keystrokes that don't exist on Rust.

russellbeattie|11 months ago

Quick note: In my opinion, the ai-generated food pictures are deep in the uncanny valley. Unappetizingly so. The hollandaise sauce image is disturbing in a way that's hard to describe, which somehow makes it worse.

Retr0id|11 months ago

I type "lasagne", hit enter, some things pop up and disappear before I can read them, and then I get a solid white screen. (in Firefox)

DeathArrow|11 months ago

I don't think I would want to cook and eat AI generated recipes. I don't like to read AI generated texts and I don't like to listen to AI generated music.

You can call me a snob, but I appreciate some things only if they are the result of work and creativity of humans.

s2th4d|11 months ago

Well this is a good start, I tried searching for “Anti-inflammatory” and the app crashed. Likely that scaling is way out of proportion considering it’s here on HN , but do you have any load balancing or caching setup? Debouncing on the inputs?

DidYaWipe|11 months ago

What is "vibecoded" supposed to mean?

vunderba|11 months ago

It's a term to describe using an agentic LLM based assistant to write the majority of the code but without even taking the bare minimum of time to review the output. I laughed when people naively claimed that it was intended for proof-of-concepts only and would never be used in actual "production".

esperent|11 months ago

It's a newish term that I have understood to mean coding by letting the AI do nearly all the work, just telling it what you want done in broad strokes. If the code returned seems to "vibe" with what you're trying to do, then accept it.

Contrasted to AI assisted coding, where you would give much more detailed prompts with technical specifications, and read over every line to make sure you understand it before accepting a response.

In theory, vibe coding can let someone with very limited technical expertise build complete apps, so understandably a lot of people are excited by it.

In practice, it doesn't seem like we're there yet. But each new step in AI development leads to people trying again, and it's hard to deny that the results are getting better. I think we're at the stage of where AI image generators were a few years ago. Very much in the uncanny valley.

Nursie|11 months ago

"Hey AI build me a node app that does X" "Now add a page for this" "Change this field to be that" "Integrate it with service X, Y, Z"

GaryNumanVevo|11 months ago

With 35K LoC for a simple website, I'd consider this slopcoding

MrVandemar|11 months ago

"Still, I was determined not to write any code ... I just sat laughing as the computer wrote code."

I can pop over to Midjourney and be determined not to draw a single line and "sit there laughing" as it draws the Mona Lisa in the style of Salvador Dali but with a turnip instead of a person.

How is this any different? What is ultimately notable about it? Did any of it make you a better programmer?

I'm always deeply impressed when people devote significant chunks of their time to achieving extraordinary results. I'm entirely baffled, however, that there's anything at all interesting about using an AI interface to build an AI interface to connect you to AI slop.

You could have spent 20 hours planting trees or doing some kind of community serivce, and the world would have been a far better place.

tgsovlerkhgsel|11 months ago

Programming is not art. In the end, nobody will care whether software was painstakingly hand-chiseled by humans in a dungeon or "vibe coded", as long as the result is good enough. (I'd argue that art will "suffer" from the same "problem".)

What is notable here is that someone is demonstrating that the systems are reaching a quality where this is possible.

> Did any of it make you a better programmer?

By conventional metrics, if the job got done well enough in less time, yes, even if less skill is involved.

peterldowns|11 months ago

Nice work! The voice control is actually really, really cool. I was able to say "show me a chicken tikka masala recipe" which got me 3 recipes, and then I said "show me the third one" and it opened nearly instantly. Pretty awesome. I want this for my entire computer!

layer8|11 months ago

It looks like OP will be learning a thing or two about content moderation.

DontchaKnowit|11 months ago

I understand that this is just kind of a proof of concept exposition of AI capabilities, but I fucking hate it and it is emblematic of the kind of low effort drivel that is infecting the internet. This is totally unusable in every way possible. While technically impressive (that AI can make a pretty-ish and functional website) it is practically useless.

Also, the photos are some of the most un-appetizing, uncanny valley, shit I've ever seen.

groggo|11 months ago

Nice work! I also made a recipe app, but after seeing the recipes people generated on yours, I'm choosing not to share it at this time.

Seriously though - vibecoding is great. Even better (or only feasible) as engineers who can dive in when we need to.

My app is iOS and I had never done any Swift. I do have AI generation but that was more of a fun afterthought. The main utility is extracting recipes from the web and having a synced shopping list that I can share with my wife.

bilekas|11 months ago

Yeah, this is amusing but I would like to see the source that was “vibes” 34k LOC is an outrageous number for something so basic..

jstummbillig|11 months ago

What is basic about it? It's packed with features (that you might not care about, but that seems entirely beside the point).

fmxsh|11 months ago

Not in position to judge the product, but had me thinking...

Perhaps this is 1998 again, when you could earn big money on creating a visitor-counter service, or a guest book service.

Perhaps, now is the time for a lot of smaller projects with AI, that will, in a few years, all be blasted off the market by big corporations and change in trends.

jl6|11 months ago

I assume the insane recipes are generated from users’ prompts, so you might want some content warning or moderation. Kinda cool though that it generates recipes for anything, regardless of if it involves food.

amanzi|11 months ago

This timeline is so cursed I can't tell if this is real or just an April Fools joke.

abcd_f|11 months ago

With Gluten-Free Plywood Waffles it must be real.

maxlin|11 months ago

Because the app shows entirely unfiltered "crowdsourced" latest recipes which of course are ridiculous given this is public, I first thought this was some high effort april fools joke on vibe coding, AI slop and the insecurity / thoughtlessness of the results.

But there is some quality in it, I can't argue against that

geitir|11 months ago

Would love to see a git repo

wazoox|11 months ago

Obviously your fish recipes are the best, well done sir :) Apparently most people aren't aware of the date...

tomblomfield|11 months ago

I'm scaling the heroku database right now, which caused a little bit of downtime :-/

nine_k|11 months ago

Among Heroku and OpenAI bills, the project is apparently not optimized for low-cost operation just yet. Should it become popular, this may become an issue.

__loam|11 months ago

I am horrified that you've produced that much code in such a short amount of time.

blitzar|11 months ago

I have a few qualms with this app:

It does not seem very "viral" or income-generating. I know this is premature at this point, but without charging users for the service, is it reasonable to expect to make money off of this?

kunalchuadhari|11 months ago

Interesting... Thanks for putting in the effort. I'm curious, did your previous knowledge of programming help you accept code changes, or do you just keep everything written by agent?

deng|11 months ago

> It now includes a fully interactive voice assistant so you don't need to get your dirty hands over your new iPad when you're cooking.

Always floored about the problems people think need fixing. The problem is not that you get your dirty hands on the iPad. The problem is that you want real recipes. You know, things people have actually cooked and found to be good. With real photos of how the result actually looks (instead of what an AI thinks it might look based on the description).

You might be lucky and find these for free someplace on the web. However, those LLMs that "vibecoded" this Rails app for you are now also used to flood the web with garbage recipes, so finding good recipes on the web will become much, much harder than it already is. I browsed through the recipes and could not find a single one that actually looks real, so at the moment, you are just adding to this problem. This is why people still buy physical cooking books. The good ones are made with sturdy, thick paper so that you can get your dirty hands on them. This is what cooking is all about. Only unused cooking books stay clean.

farzd|11 months ago

Vibe coders will be so busy solving the problem of making something work that they wont invest time into understanding the business problem at hand

bbbbbenji|11 months ago

Absolutely agree. Real recipes, tested by actual cooks (home or professional) with genuine photos, matter far more to me than avoiding messy screens. Does anyone know trustworthy sites that consistently offer recipes meeting these standards?

kpcyrd|11 months ago

As somebody who cooks quite a lot (for a diverse set of people), I have the opposite experience of what you describe (also I hate having to touch my screen while cooking).

The cooking book scene has been openly criticized for not actually trying the recipes, even before LLMs were a thing[0]. Regular cooking websites have always been somewhat unusable due to massive ads and fluff text because 1) SEO and 2) recipes are not copyrightable, but the fluff text is.

For quite some time I get my recipes directly from chatgpt, the instructions are very condense, they work quite well, and most importantly: It knows how to substitute ingredients. "My friend is vegan and allergic to heat-resistant soy protein" and it's going to adjust accordingly.

[0]: https://www.matchingfoodandwine.com/news/blog/recipes-that-d...

scary-size|11 months ago

Agreed! That was a problem even before LLMs showed up. I found my subscription to Cooks Illustrated/America's Test Kitchen to be incredibly valuable. Bonus: You don't have to read through 15 paragraphs of SEO fluff to get to the recipe.

zild3d|11 months ago

Are you trying to tell me this Rubbery Lasagne isn't a real recipe?

https://www.recipeninja.ai/recipe/r_LZarKW1PMNlSlx/rubbery-l...

All Ingredients

- rubber cement, 2 cups

- water, 1 cup

- lasagne noodles, 1 box

- shredded mozzarella, 2 cups

...

Step 2

Prepare the rubber sauce by mixing 2 cups of rubber cement with 1 cup of water in a saucepan over low heat until thickened.

soco|11 months ago

Is the project anything more than a (fairly elaborate I must recognize) 1 April joke? I agree with your point even on a more general level, amateur techies thinking to fix stuff which never needed fixing are nothing unusual. We "disrupt" the economy, the finances, housing and more, every day, while being barely legal and sometimes outright abusive to some part of the society, all in the name of the Saviour Technology. Is this just another example of "solutionism"? Or it's just me waking up grumpy and without coffee...

Edit: and right after this, I run into another AI-related gem: https://artificialintelligencemadesimple.substack.com/p/ai-t...

ChrisRR|11 months ago

And without 14 paragraphs of how your great grandma first discovered this recipe on a trip to italy from a soldier she romanced

morsch|11 months ago

I've got a shelf full of physical cookbooks -- The New Best Recipe, The Food Lab, an Ottolenghi book, On Food and Cooking, etc. I like them, I've read through all of them, I sometimes use them for inspiration.

It's rare that I actually cook directly from them -- usually, that'd be big and fancy stuff or stuff I'm very unfamiliar with; in both cases I usually take the time to cross reference whatever the cookbook says with additional resources from the internet.

ChatGPT, on the other hand, I frequently use when or before cooking (and I cook virtually every day).

It's great when I only have a vague idea based on stuff in the fridge; five minutes later I've got a checklist I can reference. If it hallucinates something that I flat out don't think will work or, much more likely, comes up with something that I don't want or cannot do for lack of ingredients or time or whatever, I'll tell it to adjust the recipe and it does.

It's also great when I feed it a couple of existing recipes (from real people) to compare and contrast and integrate and reformat in a way that's most useful to me, e.g. a tabular format, or scaled to a different serving size.

With all that said, the AI based recipe sites don't really do it for me, either. If I want to cook purely AI generated recipes, a chat interface works fine -- and probably better. What I really want is an AI tool that helps me curate my own recipe collection. E.g. I want to ask it "I'd like to make Ramen, how did I do it the last time, what were my notes" and when it's done I want to tell it "ok, this was fine, I decided to double the mirin and next time I'd marinate the eggs longer" and have it update the recipe.

oxfordmale|11 months ago

You don't fancy Cyanide Custard? Radioactive Slime Jello made with actual radioactive waste? Sweet Tooth Delight made with real human teeth? Or a few other desserts with NSFW names that would go down a treat for a family dinner. It is hard to please some people /s.

But yes, websites will now be filled with these low-quality recipes, and some might be outright dangerous. Cyanide custard should ring alarm bells, but using the wrong type of mushroom is equally dangerous and much more challenging to spot.

dmos62|11 months ago

I don't know why everyone is so salty. It's like putting "vibecode" in the headline attracted the worst in people.

For context, I'm not a cooking geek or virtuoso. I enjoy it to some degree, but mostly it's just about having a nice, nutritious experience, in line with whatever my mood might be. I only ever measure things super accurately when I'm baking things in the bread maker (because it doesn't let you make corrections). For most meals, I wing half the measurements and time estimates.

In my experience, most "human recipes" are just random variations on some baseline. I hate looking for recipes on recipe sites, youtube, etc. There are food bloggers that are exceptions, but usually I'll just end up scrolling for a long time with just frustration to show for it. If I sort of know some of the ingredients I want to use, have some sense of the type of eating experience I'm going for, and I want a bunch of recommendations based on that, regular "human recipe" sites are not the answer.

90% of my new recipes come from ChatGPT, and that ratio is increasing. I just marinated some chicken based on a recipe it magicked for me. I asked for insights on mixing mayo and yoghurt in the same marinade, because I had leftovers of both. It gave me 5 or so diverse recipes, and I just picked the one that best fit my pantry and mood. I also asked it to convert the recipe from volume to weight, not to mention scale it for my specific quantity of chicken, which was super handy.

I find that ChatGPT is great at providing common sense instructions and approximations. It's absolutely awesome at clobbering together a meal from ingredients I tell it I have. I can have an actual dialogue about any of it, get all kinds of recommendations and insights. That's been very useful to me. I'd go as far as to say that recipe generation is one of the easiest real problems for an LLM to solve. Or, at least for the kinds of recipes I use.

I've done my share of recipes from Serious Eats, but they weren't particularly good. I was doing Breton galettes the other week, which are notoriously fiddly to get right. Serious Eats had a huge article about it, interesting insights, but their final recipe sucked, and I was trying to be accurate. Not only I failed to get the consistency right, the wheat-buckwheat ratio was nowhere near what you'd get in France. I say, write researched articles about what makes recipes work. I can read it, I can bounce my LLM off it. If it's a fiddly recipe, I'll have to fiddle with it no matter what. If I can have a conversation with an LLM about principles at work, that's much better to me than a bunch of "human recipes".

Also, I often have questions about alternatives or things I need advice on as I'm preparing food. I'll also look at the recipe a gazillion times to check the instructions, quantities, etc. I'll set and check a timer often too. A voice-assistant is the obvious answer to this, which I'll try at my earliest convenience.

Kudos to the author!

johnisgood|11 months ago

Is this even legal? It was on the main page.

https://www.recipeninja.ai/recipe/r_dxF7OQ0O3IGXOw/actual-co...

I bet there might be a recipe of a bomb somewhere, too.[1]

April's Fools or not, I think you could get in legal trouble, but IANAL.

[1] Apparently there is: https://www.recipeninja.ai/recipe/r_SOv9sTmzAz3cg4/uranium-b...

ada1981|11 months ago

This is great. Want to come demo it in the weekly EarthPilot.ai AI Playground tomorrow at 11est?

Http://earthpilot.com/play and then join at AnthonyDavidAdams.com/zoom at 11 for show and tell.

I’m making a non-fiction book writing agent and I’d love to better understand how you used function calling to navigate the website!

tomblomfield|11 months ago

Basically you declare to the AI which functions (tools) are available for it to call: https://platform.openai.com/docs/guides/function-calling?api...

Then you handle those function calls in your javascript.

``` if (function_name === 'search_recipes') { const searchParams = new URLSearchParams();

      if (args.name) searchParams.set('name', args.name);
      if (args.difficulty) searchParams.set('difficulty', formatDifficulty(args.difficulty));
      if (args.min_duration) searchParams.set('minDuration', args.min_duration.toString());
      if (args.max_duration) searchParams.set('maxDuration', args.max_duration.toString());
      if (args.tag) searchParams.set('tag', args.tag);
      
      // Handle ingredients array correctly - the search page expects ingredients[]
      if (args.ingredients && args.ingredients.length > 0) {
        // Clear any existing ingredients
        searchParams.delete('ingredients[]');
        
        // Add each ingredient individually with the correct array notation
        args.ingredients.forEach((ingredient: string) => {
          searchParams.append('ingredients[]', ingredient);
        });
      }
      
      const queryString = searchParams.toString();
      const url = queryString ? `/search?${queryString}` : '/search';
      
      navigate(url);
      return;
    }
    
    // start_cooking function
    if (function_name === 'start_cooking') {
      // First check if we have an onStartCooking callback registered
      if (callbacksRef.current.onStartCooking) {
        callbacksRef.current.onStartCooking();
        return;
      }
    }
```

tomblomfield|11 months ago

Afraid I have a day job, so I will politely decline your kind invitation

floppiplopp|11 months ago

Is this satire making fun of 'AI'? I cannot tell. But it looks and feels like satire.

a012|11 months ago

Opened and the first recipe was “Thick white cum soup”, glad I’m my mobile phone, not at work

ff133|11 months ago

Sounds spicy...

Dish: Fek Yerr AI Slop Garbage Plate All Ingredients

    motherboard, 1, diced
    cpu, 1, diced
    olive oil, 2 tbsp
    binary code (0s and 1s), 1 cup
    soy sauce, 3 tbsp
    teriyaki sauce, 2 tbsp
    ram chips, 1 cup
    microchips, 1/4 cup
    led lights, as needed

4ndrewl|11 months ago

Couldn't you just have installed wordpress and a theme?

agluszak|11 months ago

Ai slop for generating more ai slop!

HPsquared|11 months ago

Missed an opportunity to call it "Vibe Cooking"

tajulislam22|11 months ago

This is so crazy. How did you gather recepies

notfed|11 months ago

It's AI generated.

brcmthrowaway|11 months ago

How does one learn to vibe code

atemerev|11 months ago

By practice. It requires some skill too, to constantly remove slop and keep the project from deteriorating. Usually by suggesting good architecture, asking for tests, and rewriting / cleaning up some bad code endlessly. Still much faster than manual development.

admiralrohan|11 months ago

Thanks for sharaing your journey, I have few observations

1. When I click on a recipe from home page it is maintaining the scroll position, so I am not seeing the top of the screen. Is this deliberate?

2. "Recipe Ninja was vibecoded by Tom in San Francisco." Will it increase of decrease trust in your system for users?

3. To remove AI changing random files, I use "Copy relative path" to tell AI which file to change (there is a keyboard shortcut too). Not fully vibe coding but can be useful for precision bug fixing.

Good luck with the project.

rmnclmnt|11 months ago

It feels like Jian Yang and Big Head are making a new app

sfjailbird|11 months ago

'Silicon Valley' was a practically a documentary. It's just a gold mine of absurdity out here.

munksbeer|11 months ago

Wow, I can't believe how many people seem to be missing the point here and being overly negative. The fact that you can have an ai assistant code something like this by giving it instructions would be utterly miraculous 10 years ago, even less.

Whatever the ultimate usefulness of the website is, the point is using it is slick. It works and it works well.

Very nice demo of vibe coding Tom. I appreciate it.

dbbljack|11 months ago

the microphone symbol should be animated while listening.

Xophmeister|11 months ago

April fools day has messed with my ability to identify satire at this time of year. Let's look at the evidence:

Posting date: 2025-04-02T01:57:13 1743559033 <-- too late

LoC: 35,000 <-- That's a _lot_

Front page: "Elon Musk Dirty Pants", "Heroin Hashbrowns", "AI Slop Stew", "Sweet Tooth Delight Made with Human Teeth" <-- WTF?

This is a joke, right?

hansmayer|11 months ago

I mean I guess kudos to you for being creative and building something, even if its with the so-called vibe-coding. But LoC is not the metric I would use to describe any app I've built, or that I am building.

worik|11 months ago

This is a warning.

Heed it

ilaksh|11 months ago

People are putting disgusting nonsense in there. Maybe add an AI review step to block that stuff. Let them do the whole recipe, then just block it.

maxlin|11 months ago

The only obvious problem here is showing all of them publicly. Let people do silly things but only show the sensible ones instead of being user hostile by default with false positives

low_tech_love|11 months ago

Amazing! Truly the frontier of technology. Now imagine if every recipe was an NFT, stored in the blockchain!!

ainiriand|11 months ago

One of the websites of our lifetimes for sure!

layer8|11 months ago

Make it a Spacial NFT.

liendolucas|11 months ago

A cooking web app 35k LoC? Wow, the author might be surprised to know that an entire OS kernel can be programmed at a fraction of that count. I can safely say that the days where we compained about JS bloat can be put aside, this is a whole new league by itself.

Sane advice: learn to program, put the AI hype/drug aside and do yourself a favor. It's an invaluable lifetime skill knowing to program from scratch and perhaps unassisted coding will be a looked-after skill in the years to come.

Cthulhu_|11 months ago

I kinda wish I could look at the code, but it's not open source and the frontend sources are minified/obfuscated, but it's long and looks like it's using React and a css-in-react approach, which also generates a ton of code.

postalrat|11 months ago

Vibe convert it to rust and it's even more bloat.

black_13|11 months ago

[deleted]

nine_k|11 months ago

(1) It's incorrect to assume that the content published on HN benefits only the VCs, and none of the other participants.

(2) This particular post is an interesting data point in the research of what the current crop of LLM-based tools is capable of. It reads a bit like a Windsurf ad; I would like more details on how the technical side of the development panned out, what were the problems and where, how were they overcome, etc.

(3) The parent comment reads as a somehow funny mix of socialist "anti-greed" agenda and frowning upon the fact of sharing knowledge and experience freely.

gherard5555|11 months ago

please stop saying vibecoding it makes me wanna kms

probably_wrong|11 months ago

It makes you want to... kilometers? I've heard of people "going postal" when they're angry, but I never heard of someone "going metric".

Less tongue-in-cheek: there's no word censorship in HN. You can say "kill myself" here.

anonzzzies|11 months ago

That is nice actually. Recipe sites are so annoying where I have to scroll for an hour to see the ingredients. Thanks!

anonzzzies|11 months ago

I never wonder about downvotes (and we are not supposed to ask) but why? Downvoted for a compliment.

notachatbot123|11 months ago

Stop ruining the commons please, it is a horrible ethical crime to flood the internet with AI-generated garbage.

dmos62|11 months ago

Ok, I think this is actually the best recipe app I've used. Well done!

dmos62|11 months ago

Haha, someone downvoted me for saying this!