This message was deleted.
# feedback
d
This message was deleted.
i
I recently took a Maven course on building prototypes with AI. Most of the folks in the course were not software engineers, but designers, PMs, and entrepeneurs. The course had a module on using Replit, where they gave us a simple prompt and our homework was to run it. I used it as an opportunity to see how Replit and OpenHands compare for a 0-1 fullstack prototype use case.
The prompt:
Copy code
Let's build a simple CRM. We'll start with basic features and add more later.

- It should have a simple database to store the data.
- The fields we want to capture are "Name", "Email", "Phone", "LinkedIn Profile", and "Notes".
- Entries should be displayed on a page as a list.
- Please create some dummy entries.
- Right now we don't need any input or login features.

Make sure to use Python and Flask for the backend. Use React, typescript, and shadcn for the frontend.
I used OH Cloud and Replit Agent. I recorded both sessions and reviewed them later to help jot down some comparative observations:
Blocking on user approval OH did not ask for my approval before doing things. This was in contrast to Replit Agent, which formed a plan and blocked while waiting for my approval, which I submitted by clicking a button. Automatic checkpoints Replit automatically created “checkpoints,” which I assume are git commits of all the project files. It rendered a little component in the chat for this, with a button to roll back. Recommended additional features Replit suggested additional features to my product. It did this via a structured form field rendered inline in the chat. These were reasonable and good for the most part. I did not select them, for parity. Speed / success at overall task Replit was relatively quick to render a pretty good looking frontend preview (4 minutes), and it finished a full prototype in 7 minutes. OH took ~16 minutes to get to a first, broken FE render. OH and I never got to a working prototype. At 30 minutes, we hit “Agent Rate Limited” and I gave up. I suspect some of Replit’s speed might have come from a templating or bootstrapping type of operation. One indicator of this is that the backend directory had files in it for an Express server (which I never asked for) in addition to files for the Python backend which was specified by the prompt. OH trouble integrating FE and BE OH spent a lot of cycles trying to wire up the FE and the BE with the right URLs, ports, and CORS configs. OH buggy file viewer The OH file workspace viewer was buggy and out of sync. OH said it had created files, and if I clicked on the View in VS Code link, I could see them all there. However, clicking on the parent directory for those files in the workspace viewer resulted in no action, even after clicking the refresh button. Eventually it seemed to catch up with the actual state of the underlying filesystem, but with significant delay.
👀 1
l
Thanks @incalculable-caravan-82764, this is super-helpful! 1. planning first before acting seems like a good thing to have. I think we can implement something where we identify if the user’s intent is well-enough specified for us to do a good job, and if not then ask for feedback (cc @chilly-france-44439 who is thinking about these things) 2. for checkpoints and rollbacks, this is something we’ve been thinking about a bit, but I think we should look at how replit does it to potentially get inspiration 3. I strongly suspect that replit is using templating (as you mentioned), along with others like v0 and bolt.new . I think this is good when you’re making apps from scratch. that’s definitely something we can handle in openhands, but it’s not the core use case we’re focusing on, so we haven’t optimized for it yet. maybe we should have some sort of way to get starter code (or at least a microagent prompt that tells OpenHands where to get an example repo) 4. the workspace viewer is definitely a bit janky. @wooden-umbrella-84098 were we going to remove this in the new design in favor of just using vscode?
i
Number 1 kind of gets at division of labor between the agent and the user: how hands-on should the user be? There is a spectrum across different tools I’ve seen: • Windsurf: by default blocks and requires user to accept each plan, diff and terminal op, with an option to “accept all” • Replit Agent: seems to block and require user sign off on larger, high-level plans. But then goes into autopilot. • OH: mostly autopilot by default. In the case study above, OH did form a plan and communicate it, it just didn’t block on user approval…
👍 1
e
This is awesome analysis - nice job Bill. I also like the idea of checkpoints and blocking for user approval. It might help first-time users get more comfortable with what the Agent is doing/planning to do before letting it run auto-pilot
🙏 1