I imagine they convert the Figma design into an intermediate form which is what you work with in their UI, and then when it generates code it is compiled with the options you choose.
I entirely missed the compiler on the first read through and I don't know why so many commenters are fixated on that specifically. That wasn't what the blog post was actually about.
How many times have we been down the path of “travel website making it easy to find the best deal and book your flight”. I don’t see how AI will do it any differently and how AI won’t inevitably run into all the same constraints.
Their product is a tool to automatically translate a Figma design file to React code. So the ordinary code to solve the problem is a compiler. They're not telling everyone to write a compiler.
Your general criticism of adding compilers doesn't make sense in this context. Their alternative would be using ChatGPT as a compiler, and they convincingly argue that'd be worse. Or are you arguing that it's bad to offer a product that generates react code?
Think that's debatable. Firstly the same argument could apply to non-AI stuff - there are dozens of websites that do basically the same thing as Google Flights which are big businesses, and frankly "AI" gives a lot more room for specialisation than flight search. Secondly, the quality of the general language model really isn't the most important thing in a specialised task chatbot (now that baseline language parsing is good) . A travel booking chatbot that's attuned to my preferences and integrated with lots of APIs of relevant niche stuff isn't blown away by something that parses my questions slightly better but then tries to book everything through Expedia. Plus that's the sort of market where people are going to have brand loyalty or rejection of the notionally superior app because they once got a really good/bad recommendation, so I don't think it's anywhere near winner-takes-all.
My takeaway is to avoid relying too heavily on LLMs both in terms of the scope tasks given to them as well as relying too heavily on any specific LLM. I think this is correct for many reasons. Firstly, you probably don't want to compete directly with ChatGPT, even if you are using OpenAI under the hood, because ChatGPT will likely end up being the better tool for very abstract interaction in the long run. For instance, if you are building an app that uses OpenAI to book hotels and flights by chatting with a bot, chances are someday either ChatGPT or something by Microsoft or Google will do that and make your puny little business totally obsolete. Secondly, relying too heavily on SDKs like the OpenAI one is, in my opinion, a waste of time. You are better off with the flexibility of making direct calls to their REST API.
However, should you be adding compilers to your toolchain? IMO, any time you add a compiler, you are not only liable to add a bunch of unnecessary complexity but you're making yourself dependent upon some tool. What's particulry bad about the author's example is that it's arguably completely unnecessary for the task at hand. What's so bad about React or Svelte that you want to use a component cross-compiler? That's a cool compiler, but it sounds like a complete waste of time and another thing to learn for building web apps. I think every tool has its place, but just "add a compiler, bruh" is terrible advice for the target audience of this blog post.
IMO, the final message of the article should be to create the most efficient toolchain for what you want to achieve. Throwing tools at a task doesn't necessarily add value, nor does doing what everyone else is doing necessarily add value; and either can be counterproductive in not just working on LLM app integration but software engineering in general.
Kudos to the author for sharing their insight, though.