by tomblomfield on 4/2/25, 1:57 AM with 242 comments
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
by nine_k on 4/2/25, 2:37 AM
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.
by iambateman on 4/2/25, 3:49 AM
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
by GaryNumanVevo on 4/2/25, 8:13 AM
The app literally exposes his OpenAI key.
by apgwoz on 4/2/25, 6:11 AM
by osigurdson on 4/2/25, 4:59 AM
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).
by pzo on 4/2/25, 8:00 AM
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
by jumploops on 4/2/25, 6:02 AM
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
by rsaz on 4/2/25, 2:18 AM
Or, was this mostly just an exercise in engineering/testing AI?
by vander_elst on 4/2/25, 7:23 AM
by jorisnoo on 4/2/25, 3:44 AM
by a_c on 4/2/25, 7:35 AM
by nwroot on 4/2/25, 3:49 AM
by ttd on 4/2/25, 3:48 AM
by Quarondeau on 4/2/25, 8:33 AM
https://www.recipeninja.ai/recipe/r_0a8wYxMgm1zFSw/white-pow...
by Yiling-J on 4/2/25, 3:56 AM
by NackerHughes on 4/2/25, 1:09 PM
https://www.recipeninja.ai/recipe/r_XbZvrH23kS6FwN/werewolf-...
by tombert on 4/2/25, 2:17 AM
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.
by russellbeattie on 4/2/25, 4:07 AM
by Retr0id on 4/2/25, 2:14 AM
by DeathArrow on 4/2/25, 7:18 AM
You can call me a snob, but I appreciate some things only if they are the result of work and creativity of humans.
by s2th4d on 4/2/25, 2:11 AM
by DidYaWipe on 4/2/25, 4:07 AM
by Tainnor on 4/2/25, 5:17 AM
by MrVandemar on 4/2/25, 5:43 AM
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.
by peterldowns on 4/2/25, 3:47 AM
by iamsaitam on 4/2/25, 11:41 AM
Interview with Vibe Coder in 2025 https://youtu.be/JeNS1ZNHQs8?si=kQIVpEBUwK3pNvRw
I think this helps to understand the mindset of a vibe coder better
by layer8 on 4/2/25, 11:07 AM
by DontchaKnowit on 4/2/25, 5:05 AM
Also, the photos are some of the most un-appetizing, uncanny valley, shit I've ever seen.
by groggo on 4/2/25, 6:53 AM
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.
by NoGravitas on 4/2/25, 4:59 PM
There are a lot of really weird recipes still on there, including cyanide ice cream.
by bilekas on 4/2/25, 7:18 AM
by fmxsh on 4/2/25, 8:17 PM
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.
by personjerry on 4/2/25, 3:51 AM
Ah yes, they just don't make cyanide ice cream like grandma used to
by jl6 on 4/2/25, 7:10 AM
by amanzi on 4/2/25, 7:47 AM
by lesostep on 4/2/25, 2:04 PM
The recipe still exists though: https://www.recipeninja.ai/recipe/r_UptD1AgJYvvXWm/%D0%9B%D1...
by maxlin on 4/2/25, 7:05 AM
But there is some quality in it, I can't argue against that
by geitir on 4/2/25, 2:26 AM
by wazoox on 4/2/25, 7:27 AM
by nerptastic on 4/2/25, 11:30 AM
I would tell the AI to avoid recipes that contain bodily fluids.
> https://www.recipeninja.ai/recipe/r_vBiLoIJK7qsUc7/cum-panca...
by uzantonomon on 4/2/25, 9:42 AM
https://www.recipeninja.ai/recipe/r_SOv9sTmzAz3cg4/uranium-b...
I'm joking NSA.
by tomblomfield on 4/2/25, 2:35 AM
by __loam on 4/2/25, 9:42 AM
by prawn on 4/2/25, 4:32 AM
by blitzar on 4/2/25, 7:16 AM
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?
by kunalchuadhari on 4/2/25, 5:02 AM
by deng on 4/2/25, 6:58 AM
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.
by jorisnoo on 4/2/25, 9:02 AM
https://www.recipeninja.ai/recipe/r_iEyaSAKCQlzl4Q/vibes-and...
But then, as with most llm tools, the fun wore off after a few minutes of playing with it.
by johnisgood on 4/2/25, 9:19 AM
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...
by ada1981 on 4/2/25, 2:09 AM
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!
by floppiplopp on 4/2/25, 7:20 AM
by a012 on 4/2/25, 6:45 AM
by 4ndrewl on 4/2/25, 8:25 AM
by agluszak on 4/2/25, 7:49 AM
by HPsquared on 4/2/25, 8:24 AM
by tajulislam22 on 4/2/25, 5:49 AM
by brcmthrowaway on 4/2/25, 4:26 AM
by admiralrohan on 4/2/25, 5:04 AM
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.
by lwansbrough on 4/2/25, 6:48 AM
by rmnclmnt on 4/2/25, 7:18 AM
by munksbeer on 4/2/25, 1:29 PM
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.
by dbbljack on 4/2/25, 4:10 AM
by Xophmeister on 4/2/25, 8:30 AM
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?
by foragerdev on 4/2/25, 5:00 AM
by hansmayer on 4/2/25, 8:17 AM
by worik on 4/3/25, 6:59 PM
Heed it
by ilaksh on 4/2/25, 6:25 AM
by low_tech_love on 4/2/25, 5:35 AM
by herrherrmann on 4/2/25, 12:38 PM
by liendolucas on 4/2/25, 8:58 AM
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.
by gherard5555 on 4/2/25, 8:47 AM
by anonzzzies on 4/2/25, 3:40 AM
by notachatbot123 on 4/2/25, 8:29 AM
by dmos62 on 4/2/25, 5:36 AM