Fork me on GitHub


hover to stop scrolling


Domain Driven Applications, Quickly

Apache Isis™ is a framework for rapidly developing domain-driven apps in Java. Write your business logic in entities, domain services or view models, and the framework dynamically generates a representation of that domain model as a webapp or a RESTful API.

Learn more »

UI "for free"

Apache Isis dynamically builds a generic UI directly from the underlying domain objects. This makes for extremely rapid prototyping and a short feedback cycle, perfect for agile development. The UI can also be extended for specific use cases, and can be themed using Bootstrap.

See Apache Isis in action »


The core of an Apache Isis application are the domain objects, either persisted entities or view models. Business rules can be associated directly with domain objects, or can be factored out into separate services. Apache Isis performs dependency injection everywhere to ensure that the application remains decoupled.

Read the docs »

Add-ons (non ASF)

Apache Isis has a large number of github-hosted add-on modules for security, auditing, command profiling, mail merge and other cross-cutting concerns. It also has a number of UI extensions for maps, calendars and so on. All are open source and designed for out-of-the-box use or to fork as you require.

Check out the add-ons »

A typical application built with Apache Isis

Like all Apache Isis apps, the UI is dynamically built from the domain model.

You can learn more about this particular application here. The app is also open source, so you can check out its source code on github.

Getting started

Start developing your own Apache Isis application using our simpleapp archetype:

mvn archetype:generate  \
    -D archetypeGroupId=org.apache.isis.archetype \
    -D archetypeArtifactId=simpleapp-archetype \
    -D archetypeVersion=1.9.0 \
    -D groupId=com.mycompany \
    -D artifactId=myapp \
    -D version=1.0-SNAPSHOT \


... and this short tutorial should give you an idea as to how Apache Isis dynamically builds the UI:


hover to stop scrolling