Remix.run Logo
slopinthebag 2 hours ago

Honestly, I'm not really pro or anti llm and I think there are a ton of limitations for using it to generate code, but UI has been probably the only thing I've been able to vibe code. It helps that I've done a lot of UI work over the years, but I think the combination of defects being easily visible through normal usage, the UI being a non-critical component of a system (bugs don't cause vulns or data corruption (usually), combined with the amount of churn that UI's see, make it a somewhat uniquely good candidate for vibe coding. Also a lot of UI toolkits are declarative, and I think language models do much better with declarative code.

In a way it's not much different from copy-pasting components from templates or whatever, just with more customisability. And for stuff that isn't HTML-based like React it does worse. It's also not great at building component libraries, I still write those myself with little LLM involvement, but that makes sense because the architecture is actually relevant with that, unlike generating CSS and xml-derived components, which is mostly just declarative templating anyways.

I've had decent success writing the core logic myself and then delegating the UI to AI. I think if I didn't write the core logic it would not work very well, but since it's designed well by myself the AI has a much smaller scope to work in which constrains it enough where vibe coding works. Pretty cool.