Model it
Draw your system precisely — classes, relationships, state machines, screens. BESSER’s generators turn the models into code: same model in, same code out, every run.
Describe your app in plain words. BESSER builds a model you can check, then the Spec-Driven Agent turns it into a running application — generators first, AI only for the gap.
Both lead into the same project, so you can switch at any time: describe the first draft, then fine-tune it on the canvas.
Draw your system precisely — classes, relationships, state machines, screens. BESSER’s generators turn the models into code: same model in, same code out, every run.
Say what you want in plain words. An assistant builds the models with you, then the application from them — and you refine both by chatting.
Create a hotel booking app: hotels have rooms with a type and a nightly price, guests book a room for check-in and check-out dates, and each booking has a status.
Instead of going straight from your words to code, the assistant builds a B-UML model — the same class diagrams, state machines and constraints you would draw by hand. That model is where you stay in control: anything it misunderstood is visible on the canvas before a single line of code exists.
When the model is right, ask for the application. Before anything runs, the assistant tells you how it will work: BESSER builds the app with its built-in generators and hands a language model only what they don’t support.
During the run the agent starts the server, checks that it answers, creates records and confirms that invalid input is rejected. The run card ends with an honest account of how the app was built — then you download it or push it to GitHub.
The agent drives BESSER’s generators rather than replacing them. Every run shows the same five phases on its run card, with the language model’s tool calls and a live cost meter.
Picks the BESSER generator that fits your request — only generators whose models are in your project are offered.
Runs it on your model: database layer, schemas, a REST API for every class. Same model in, same code out.
Compares that scaffold with what you asked for and turns the difference into a task list.
A language model works through the list with a constrained set of tools, editing the scaffold and adding only what the templates don’t provide.
Checks syntax, imports and contracts, repairs what fails, and — where it can — boots the app and creates records before reporting success.
You check the model before any code exists. The code that follows from it comes from tested generators, and the agent tests the app before handing it over.
Generators cost nothing to run, so the language model only spends tokens on the gap. That is what lets a complete app run on the free hosted model.
Fewer generated tokens means less compute per application — and the model stays the source of truth you maintain and regenerate from.
The assistant picks the cheapest reliable route: a generator when one fits, the Spec-Driven Agent when you need more.
Describe your domain and get a B-UML model you can check before any code exists.
Ask for a target BESSER already templates and the code comes from the generator itself — no language model involved.
Ask for “the web app” and the Spec-Driven Agent builds it: generators first, AI only for the gap, tested before it is handed over.
Not every request needs a language model. Ask for an SQL schema for PostgreSQL and the assistant runs BESSER’s SQL generator on your model directly — the card reads “Generated deterministically · 0 tokens”, and the code is ready to download.
One sentence becomes a hotel booking model, then a running FastAPI and React app — on the free tier. Turn the sound on for the narration.