Hacker Newsnew | past | comments | ask | show | jobs | submit | tomblomfield's commentslogin

I recently started using Aqua and it's great. The team really improved the latency in the last few weeks.


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.


The LLM swaps out business logic without you knowing it? As someone who worries about determinism and doesn’t do much vibe coding, I am curious what’s going on here, thanks!


Absolutely, very often. It typically happens because it's trying to do more than you asked for.

Example scenario: you have a codebase that you iterated on with LLM, and it contains let's say 15 features with various implementation details. You continue tomorrow and want to make a small change to handle an edge-case. While making changes to one of the 3 required files, suddenly it will decide to also rewrite / "improve" other parts of the code that have nothing to do with your request, where pieces of previous logic will no longer exist - since it made 18 changes to the file, and there are 3 such files, good luck spotting it without thorough and detailed change review.

Also, if you made manual changes to generated code and than you ask it to add something to the code (within the same "conversation" / context, it will often replace your changes with how it originally wanted code to look like.


I experienced this, too. It is quite annoying. You have to explicitly tell the LLM to leave everything else as-is.


use conventions.md to have it not do that.


Do things like Cline's memory bank solve this?


What the fuck


"Let's take a different approach. Instead of trying to fix the existing file incrementally, let's rewrite it completely with a simpler approach that uses the --print-config flag to test the configuration:"


Would you mind describing the process for this in a bit more detail?


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


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.


Ok it's mostly back online!


Hmm it seems like recipe generation might be broken on Firefox. I'll look into it - thanks! It's working in Chrome

Search is working fine, I just tried https://www.recipeninja.ai/search?name=lasagne


>> It's working in Chrome... It's working fine for me... Search is working fine

Maybe there's more to this software development thing than pumping out something that kind of works?


Weird - sorry to hear that. It's working fine for me.

I get this search result https://www.recipeninja.ai/search?name=Anti-inflammatory

What browser are you using? Voice mode or typing?


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


The real problem of your website is that the recipes are AI generated.

A second, minor problem of your website is that the images illustrating recipes are AI generated with a bad quality

You can't solve those issues by throwing more AI.. well maybe the second problem you can (AI images with later models are generally ok)


They just haven't done the "now monitise it" step in the vibe-coding journey.


with all respect to the man himself, not sure tom blomfield needs to think about that part..


It’s ok! He’ll just ask the AI! It’ll solve it for us!


Why would I want to do that when I can go to one of dozen AI chat interfaces and ask for recipes and further customization without having to look at any interface?


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


Thanks! I’m going to show the folks what you built. We have VCs, founders, and all Sorts of folks who join us every week.


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;
      }
    }
```


W


My Ubers often smell very strongly of the food the driver has been eating.

The driver is often on a call for the entire journey, which is annoying.

It’s often much colder or warmer than I’d ideally like.

An extreme case, but I once had a driver stop a ride, jump out of the car and pull the driver out of the car in front. They proceeded to have a fist fight. The other guy had honked at him for blocking the road or something.

I’d much prefer a computer to drive me around.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: