I’m finding that I’m now faster outside of Anvil anecdotal) when it comes to development thanks to Cursor (even when when I factor in how fast drag and drop is). Agent mode is quite impressive.
I hate using so much JS, CSS and html but you barely have to think about it.
I feel like I’ve mentioned it before but it’s worth creating a formal feature request. I’ve noticed a big pick up in enterprises embracing this too.
Ideally we would input our own API keys to some service’s (like when using continue.dev) for auto complete and another one for a chat interface or agent mode that knows your codebase.
I appreciate this would be a large project in a fast moving environment but speed of Anvil already multiplied by LLMs gives me goosebumps thinking about it.
Yeah, I’m getting very quick results building stuff with aider in react or solid.
But…
I find AI stuff only really works well when I know enough to get stuck in when it screws up. And I don’t want to do that in react or solid or any other js shenanigans. I wouldn’t be here in the first place if I did.
I suspect that you’ll need to convert the .yaml to a stricter, simpler, uniform format, in order for the LLMs to recognize the regularities of structure and content.
Yes, modifying the yaml might be needed for optimal outcome but I don’t mind just having something to start with then iterating on it (although it’s easy not to mind when it’s not my work to do).
Yeah, Anvil would have to at least fine tune a model to make something that doesn’t routinely make embarrassing errors.
I use Cline with VSCode, combined with a set of documented design patterns and syntax for Anvil apps. I tell it to refer to that document before writing code, and it has made a big difference in writing good code. But it is still not something I would stamp my name on if I were someone at Anvil.
Replit has really leaned into LLM coding in their online IDE but they use popular frameworks which have really extensive training data so LLMs do better in that context.
I would also like this but I feel that it would need a reimagining of the Anvil IDE. Or at least a way to expose the existing components to the LLM. And the LLM would need to actually understand how those components fit together.
I’m currently using Claude to help write code in Anvil using the Github sync feature. But only more complex server code.
I recently tried using Cursor to make a Django web app (instead of Anvil). After about 1 hour I got a basic skeleton, functional landing page, and admin. But after that it gets really tricky because you have to focus on tiny parts or the LLM (Sonnet 3.7) starts making random changes to the app because of the context window. In the end what I had worked, but if something went wrong it would be hard to debug. I went back to Anvil.
I think the issue I had was I went full on “vibe coding” when I should have started smaller and done things piece by piece. In my mind there are 3 levels of AI coding:
Copy pasting from chat window (this is where we are now with Anvil)
Using the LLM to write chunks of code, test them independently, and build things up
Vibe coding until the wheels fall off and the forum explodes
I think level 2 is productive and where we need to be.
Maybe #2 would mean only letting the LLM be on the level of making changes to the current form/file and only having context to that form and any custom components used in it.