The output (used by the user interface) is a JSON schema (DSL) which defines the whole app (collections, fields, relations, pages, access/roles menu etc). It can be changed throughout the lifetime of the application. The built-in revision control makes it easy to revert changes.
In the article (link below) the author vibe-coded a full-stack React “todo” app with an Claude Code and had it live on the internet in under 90 seconds — including frontend, backend, database, REST API, Swagger docs, and deployment — without writing a single line of code by hand.
The key takeaway isn’t just the speed. What made the rapid turnaround possible was the stack itself: a low-ceremony platform (Codehooks.io) that keeps frontend and backend together, avoids CORS and infra config, and uses schema-driven APIs so the AI doesn’t get stuck on peripheral problems.
Instead of AI nirvana, the article argues we should be thinking about what stacks maximize AI productivity — the ones that remove friction points and keep the feedback loop tight between idea and deployment.
One of the frustrating aspects of using prompts to generate code is that the output can vary quite a bit even with the same prompt. Creating an API which use the OpenAI APIs for mission critical solutions feels a bit scary and unpredictable. For structured output, I know people use libraries like Pydantic with Python. I don't now the best approach to deal with this with regards to code generation, though. For now, I guess having an experienced software engineer examine the code is essential.
The output (used by the user interface) is a JSON schema (DSL) which defines the whole app (collections, fields, relations, pages, access/roles menu etc). It can be changed throughout the lifetime of the application. The built-in revision control makes it easy to revert changes.