BESSER is an open-source, model-driven low-code platform in Python.
Design your app as a UML model — in the browser or in Python — and generate the code:
FastAPI backends, React frontends, Django, Spring Boot, Flutter, databases, agents and more.
Try it in your browser · Docs · Examples · Built with BESSER
BESSER is a low-modeling low-code open-source platform. BESSER (Building bEtter Smart Software fastER) is funded thanks to an FNR Pearl grant led by the Luxembourg Institute of Science and Technology with the participation of the SnT/University of Luxembourg and open to all your contributions!
No install: open the BESSER Web Modeling Editor, draw a class diagram (or describe your app and let the AI assistant draw it), and click Generate.
In Python:
pip install besser
from besser.BUML.metamodel.structural import DomainModel, Class, Property, StringType, IntegerType
from besser.generators.backend import BackendGenerator
book = Class(name="Book", attributes={Property(name="title", type=StringType),
Property(name="pages", type=IntegerType)})
model = DomainModel(name="Library", types={book})
BackendGenerator(model, output_dir="library_api").generate() # FastAPI + SQLAlchemy + Pydanticpython library_api/main_api.py # then open http://localhost:8000/docs
That's a working REST API with a database, CRUD endpoints and validation, generated from five lines of model.
With your AI coding agent (Claude Code, Cursor, Copilot, Cline, …): install the BESSER Skills and just ask, e.g. "model a library with books and authors in BESSER and generate a FastAPI backend". The agent builds a correct B-UML model and runs the right generator for you.
npx skills add BESSER-PEARL/besser-skills --all
| You want… | BESSER generates |
|---|---|
| A full-stack web app | React frontend + FastAPI backend + database (WebAppGenerator) |
| A backend / REST API | FastAPI, SQLAlchemy, Pydantic · Spring Boot · Django · Supabase |
| A database | SQL DDL (PostgreSQL, MySQL, SQLite, …) · SQLAlchemy models |
| A mobile app | Flutter |
| Plain code & schemas | Python classes · Java classes · JSON Schema · RDF |
| Agents & chatbots | BESSER Agentic Framework agents from agent diagrams |
| ML & quantum | PyTorch · TensorFlow · Qiskit |
| Deployment | Docker Compose · Terraform |
See the full list of generators.
- Deterministic. The same model always produces the same code. No prompt roulette for the parts that should be boring.
- AI where templates stop. The experimental Spec-Driven Agent starts from the generated scaffold, lets an LLM add what the templates don't cover (auth, Docker, tests, other stacks), then validates the result. Where a free tier is configured, it runs without an API key.
- The model stays the source of truth. Change the model, regenerate, keep going. Class, object, state machine, agent, GUI, BPMN, neural network and quantum models all live in one project.
BESSER Skills and UML Drawing package BESSER as Agent Skills for Claude Code, Cursor, Copilot, Cline and others:
npx skills add BESSER-PEARL/besser-skills --all
npx skills add BESSER-PEARL/uml-drawing --all
Contributions are welcome: new generators, metamodels, bug fixes and docs. Start with CONTRIBUTING.md (local setup, tests) and the Contributor Guide. Look for good first issue to get started.
If BESSER is useful to you, a ⭐ helps others find it.
BESSER is built on B-UML, our Python-based interpretation of a "Universal Modeling Language", heavily inspired by UML.
- Cite: use the "Cite this repository" button (CITATION.cff).
- Code of Conduct: CODE_OF_CONDUCT.md · Governance: GOVERNANCE.md
- Contact: info@besser-pearl.org · besser-pearl.org · LinkedIn
- License: MIT
