OABuilder is a visual modeling tool for defining and evolving software using the OA Model-as-Software Development Process. It is the Blueprints for enterprise software applications.
OABuilder empowers teams to design their systems using Model-Driven Architecture principles. Every object, property, relationship, rule, and trigger is visually defined and becomes part of a live, event-aware model.
OABuilder does more than draw diagrams — it generates working software that reacts to events, synchronizes in real time, and drives both logic and UI.
With OABuilder, your domain model becomes the single source of truth. The application is generated from this model — and remains in sync as the model evolves.
The model serves as the perfect abstraction layer above software code. It's metadata-rich and designed to produce smart objects — every class generated becomes an
OAObject
, with built-in support for observability, relationships, validation, and event-driven behavior. It defines what the software should do — not how to write it. This allows developers to focus on business rules and logic while OA handles the complexity of implementation,
wiring, and consistency across the full stack.
OABuilder works hand-in-hand with OACodeGen, generating the full-stack application based on the live model. This includes:
OACodeGen uses a multi-stage generation process. The model is transformed into intermediate structures — tailored for three distinct types of code generators. This staging technique allows it to target different layers of the stack, while maintaining full consistency and flexibility.
It’s also a meta-generator — a tool for building code generators. Developers can create new generators that target any language or platform, from native mobile to cloud infrastructure definitions.
Regeneration is safe, fast, and repeatable. Custom logic can be layered on top without being overwritten.
OABuilder is available for free on GitHub:
🔗 github.com/ViaOA/oabuilder-run
Compatible with Java 8+ and runs as a desktop application. Model definitions can be exported as XML or JSON, and used to power OA applications across any stack.