DEV Community

Cover image for Do we need yet another vibe coding system?
Andrej Kirejeŭ
Andrej Kirejeŭ

Posted on

Do we need yet another vibe coding system?

There are numerous vibe coding systems available today, each with its own unique features and capabilities. What is the case for Naytron as a platform?

Consider a simple game like Tetris or Snake. You come to the vibe coding system with an idea and maybe a short description. Nowadays, that is enough. Just wait patiently for 10-15 minutes and you have a working app with a slick design and responsive gameplay. If something isn't to your taste, you can easily ask the system to make changes. Paint it in another color, increase game speed, change point assignment rules, that sort of thing. Notably, there is no need to keep track of changes. There is simply no point in tracking what color was used initially and what it was changed to.

Now, imagine a complex warehouse and sales management system. Well, even in an extreme case we couldn't imagine someone coming in with a statement like "I need a system to manage my warehouse and sales." and would expecting exactly the system they had imagined in their head to be delivered. Because even newbies understand that what you ask and what you get is depend primarily on how you feed the system with specifications and requirements. And ordinary people are not good with specifications. They often confuse things, omit important details, don't foresee the consequences and make inconsistent demands.

This brings us to the first reason for Naytron to exist: a typical user comes with specifications, or rather let us say with pieces of thoughts and ideas, formed into texts, tables, report templates, schemas and drawings. Naytron takes it all, understands, asks clarifying questions, fishes out missing details, and step by step helps the user to develop a complete and coherent understanding about the ultimate system they need. Notice that we say "knowledge" here rather than "specifications", "requirements" or "documentation". That is the point, we want it to have a form of well-formatted documents externally, but internally it should be a network of interconnected knowledge pieces. The structure somewhat resembles a wiki, a knowledge graph or a mind map. The User can even visualize it as such if that form helps their understanding.

Even before the first line of the code is written, Naytron can model the system, put it to work virtually, simulate pieces of data moving through the user interface, following business workflows, being transformed by application logic and stored in the underlying database. This allows users to validate their ideas, catch potential issues early, and refine their requirements iteratively, all within a virtual environment that mirrors the real-world operation of the system.

Next, the coding. Though we allow arbitrary React code pages, in case a user actually wants to build Tetris or Snake, for business applications Naytron is very opinionated about the data representation through entities and their relations, the UI providing standard pages for CRUD operations, and the overall application structure. This ensures speed, consistency and robustness of the resulting application. The model doesn't need to reinvent every time how to reliably read and write data, separate users by their rights and roles, log activities or call business logic functions. That is the second reason for Naytron to exist.

Guess what comes third? Well, we return to the specifications. Once the code is done, we can match each paragraph or even individual phrase to the corresponding lines of code, data structures or UI components. Literally, one can open the specifications in the panel on the left, select a phrase and see exactly which lines of code implement it.

And now we come to the most valuable fourth feature: evolution of the system through the development of the specifications. Imagine a rather substantial system already in place. Hundreds of database tables, dozens of UI screens, thousands of lines of code. Everything is in accordance with the knowledge base which is visible to the end user as neatly formatted documents. Then a user comes with a minutes from a meeting where new functions for the system are discussed. Naytron takes them, understands and proposes changes to the documentation. Each change is highlighted in the whole context. For each change, the consequences of introducing it into the system are shown. So, the user can easily observe the overall picture and understand the effects. And if, as a creator, the user feels satisfied they can press that start button and let Naytron implement the next application version.

The fifth reason is not on such a large scale, but nevertheless helpful. With a single click, users can get a website, a desktop application, a mobile application or a chatbot for popular messengers.

That is what makes Naytron different from other vibe coding systems available today.

Top comments (0)