Congrats on the launch! One of the positive byproducts of the open web platform is that products like this are possible. Much of what I share in other communication tools are links to things on the web, but sharing ends up forcing a context switch cost on both my end and the receiving end. Love that Muddy is exploring this problem space since I haven’t felt like other neue-browsers have gone far enough in making browsing itself a more collaborative and in-context experience.
This is an interesting and deep topic, which we plan to share more about in an upcoming technical blog post. We are still experimenting with the best ways to constrain the LLM's output such that it always compiles as expected and "knows" when to use certain Dynaboard-oriented features like {{ bindings }}. At a high level:
- Code refactoring works through a recursive refinement loop of: fetching any relevant DB schema or existing component data -> initial generation prompt -> LLM output -> using tsc (or equiv) to detect errors -> feeding the errors back into the LLM recursively until a fixed point is reached -> format. In our experience it works really well for both simple and moderately complex prompts.
- UI components are first generated as an outline/scaffolding of components which map approximately 1:1 with HTML equivalents in an initial prompt, before being populated with their respective component properties in a subsequent prompt. There's a subset of properties that seem most useful to generate which we focused on for this initial release, but we are looking to expand that list over time.
Congratulations on the launch! I've been impressed by Momento's cache infrastructure during its private beta — the team's execution around developer experience makes integration painless so you can hit the ground running. I've seen first-hand how hard operationalizing instance-based caches think the serverless approach is a great fit here.