users@causeway.apache.org

## Build software that's
in step with your business

Reviews Quick Start Docs

### Apache Causeway™ enables domain-driven application development by automatically generating a UI for your Spring Boot™ apps. That means:

- Productivity - your app is mostly business logic, with costly UI code eliminated.
- Discovery - you can work hand-in-hand with your business domain experts, to understand the problem space and to explore and then select a solution within the solution space.
- Ease of Use - your business users will find the app easy to learn, with the business concepts front and center
- Simple Integration - you can integrate easily with other systems, through domain events published automatically for async integration, and with an automatically provided REST API for sync integration.
- Clean Architecture - you will find it easy to maintain a clear separation of concerns within your app's internal architecture

And because Apache Causeway™ is open source, running on top of Spring Boot™, you won't be locked into a vendor nor even the framework; the clean separation of concerns means you could even lift-n-shift your domain logic to run on some other framework if need be.

## Quotes

We gathered together some quotes from current users of the framework. You can find out who said what here.

I'm super happy with Apache Causeway! It allows us to move forward at an amazing speed.

### Martin Hesse

Apache Causeway' philosophy is awesome - it drives you to focus on the domain model and encourages you to practice Behavior Driven Development. In addition, it brings the team together, sets the common platform and provides the right set of tools (Wicket Viewer OOUI, REST APIs, Swagger UI, Cucumber Framework) to work collaboratively which is simply great for the software development. It's a fabulously fantastic framework! A big thank you to the Apache Causeway team.

### Mansingh Shitole

#### Senior Developer, PRIME Research, Germany - Frankfurt / Mainz

Apache Causeway enabled us to concentrate on modelling the domain and getting the UI and REST Interface with nearly no effort so we could build a fast and reliable application. Now we've started using it for the second project and I'm still very impressed by the framework and the community behind it.

### Timothy Simecsek

#### NTT DATA Osterreich GmbH

We'd been looking for a RAD-tool for building our app; after trying different tools, Apache Causeway gave us the most confidence for getting the job done. It's really remarkable how easy it is to use, while contributors and users on the Causeway' active mailing list are ready to help on more advanced topics.

### Erik de Hair

#### pocos.nl

A fantastic framework! With Apache Causeway we can prototype a deployable application in minutes rather than days.

### Jeremy Branham

####

With its automatic UI and REST web services generation, Apache Causeway kept our developers amazed and happy. Having had strenuous experiences with architecture and infrastructure concerns differing from project to project, it's like having back the fun in software development

### Willie Loyd Tandingan

####

Apache Causeway' focus on the business domain improves communication between our end-users, architects and developers. Having a better application in a fraction of the time and cost is something we highly appreciate.

### Cesar Lugo

####

The Apache Causeway team is very supportive. They even added new functionality for Summernote when I needed a WYSIWYG editor in my prototype project.

### Marianne Hagaseth

####

What interests me most about Apache Causeway is its goal of making both developers and users co-owners of their domain models. Apache Causeway will be of interest to businesses who see their custom software as a strategic investment. It's not trying to be all things to all people, but it has depth and also, I predict, a bright future.

### Steve Cameron

####

As students most of us prefer sticking with business logic than spending much time with UX enhancements. Apache Causeway provides a great platform to create a perfectly working prototypes with loads of inbuilt UX concerns and customizations without worrying a single bit on the GUI perspective. And I must say this: "Great Support from the development team"

### Vishma Dias

#### University of Moratuwa, Sri Lanka.

Apache Causeway has allowed us to be focused on the Domain instead of infrastructure issues. The extensive metamodel let us further automate and enhance our custom viewer and integrate with external frameworks.

### Nacho Canovas

####

Apache Causeway provided us with a great starting point for our app; we simply took the todoapp archetype and used it as a template to help set up our integration tests and BDD specs. We were productive almost immediately

### Vladimir Nisevic

#### A1 Telekom Austria

Apache Causeway enabled us to focus on the problem domain and data quality and - because the UI was generated for us by the framework - not get distracted by UI concerns. Identified security issues were quickly addressed by the Apache Causeway committers.

###

#### Architect

We use Apache Causeway because of its simple and fast user interface generation.

### Andreas Lechner

####

Apache Causeway is an easy to learn, efficient and productive RAD platform. Further I can say it is evolving to be "the best RAD platform" without any exaggerations. The help from the community is simply wonderful.

### Theekshana Dilshan

#### Computer Science and Engineering, University of Moratuwa, Sri Lanka.

Apache Causeway is one of the best tools for hackathons. Given a 2 day hackathon challenge I have the perfect framework to create my prototype helping me to focus on business logic.

### Sunand Padmanabhan

####

From a Sprint retrospective, the criticism of one lead developer sounded more like praise: "The problem is that if we show this to the customer they will think that all the work is done."

###

#### provided by Ged Byrne

## How it works

## UI & REST “for free”

Apache Causeway™ dynamically builds both a generic user interface and also a rich hypermedia REST API 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.

## Domain-Driven

The core of an Apache Causeway™ 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 Causeway performs dependency injection everywhere to ensure that the application remains decoupled and testable.

## Add-ons

Apache Causeway™ includes a large number of 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 etc. All are open source and designed for out-of-the-box use or to modify as you require.

## Built with

Apache Causeway™ is built on top of industry leading open source products, all licensed with business-friendly Apache Software License v2.0 or MIT.

Spring Boot

... to create stand-alone, production-grade Spring based Applications.

Apache Wicket™

... is an open source Java component oriented web application framework that powers thousands of web applications and web sites.

RESTEasy

... a portable implementation of the JAX-RS specification for RESTful APIs

EclipseLink

... the reference implementation for JPA, a comprehensive open-source Java persistence solution addressing relational, XML, and database web services.

DataNucleus AccessPlatform

... the reference implementation for JDO, provides persistence and retrieval of data to a range of datastores using a range of APIs, with a range of query languages.

Byte Buddy

... a code generation and manipulation library for creating and modifying Java classes during the runtime of a Java application.

### Quick Start

Prereqs: Java 11 and Maven 3.6+.
We recommend you try out using Linux, MacOS or WSL2
(to avoid exceeding Windows' limits due to classpath length).

#### Try out ...

Try out the framework with the minimal helloworld starter app.

Run it locally (JPA or JDO) using:

    docker run -p 8080:8080 apache/causeway-app-helloworld:jpa-SNAPSHOT
    docker run -p 8080:8080 apache/causeway-app-helloworld:jdo-SNAPSHOT

Build from source (JPA or JDO) using:

    APP=causeway-app-helloworld
    BRANCH=jpa   # or BRANCH=jdo
    curl https://codeload.github.com/apache/$APP/zip/$BRANCH | jar xv
    cd $APP-$BRANCH

    mvn clean install -Dskip.staging -Dskip.nightly
    mvn spring-boot:run

Copy text for helloworld (jpa)

#### Develop your own ...

Develop your own app with the structured simpleapp starter app.

Run it locally (JPA or JDO) using:

    docker run -p 8080:8080 apache/causeway-app-simpleapp:jpa-SNAPSHOT
    docker run -p 8080:8080 apache/causeway-app-simpleapp:jdo-SNAPSHOT

Build from source (JPA or JDO) using:

    APP=causeway-app-simpleapp
    BRANCH=jpa   # or BRANCH=jdo
    curl https://codeload.github.com/apache/$APP/zip/$BRANCH | jar xv
    cd $APP-$BRANCH

    mvn clean install -Dskip.staging -Dskip.nightly
    mvn -pl webapp spring-boot:run

Copy text for simpleapp (jpa)

#### Learn and Explore...

You can also explore the Apache Causeway™ programming model through the demo app, which illustrates many of the framework's annotations and programming conventions.

    docker run -p 8080:8080 apache/causeway-app-demo-jpa:latest
    docker run -p 8080:8080 apache/causeway-app-demo-jdo:latest

NOTE: The online apps all scale to zero when not in use, so please allow up to a minute for it to restart if necessary.

## Support

We provide support using either our Slack channel, or through mailing lists for support, use the links below to join. Most users prefer to use Slack, but we always make formal announcements on the users list; you can also browse the mailing list archives. If you find a problem, please raise a ticket on our JIRA, or ask a question on StackOverflow.

### Slack

Join #apache-causeway
(on the ASF slack workspace)

### Subscribe

users mailing list
(archives)

dev mailing list
(archives)

### Help

Jira

Stack Overflow