Web Component Viewers
The HTMX and Vue viewers render an Apache Causeway domain model using shared semantic web components backed by the GraphQL viewer. They offer two ways to host the same component model: server-routed HTML or an application-owned Vue frontend. Domain rules remain on the server; the host does not need to reproduce choices, validation, permissions, or action semantics.
Choose a host
| Concern | HTMX | Vue |
|---|---|---|
Application integration |
Maven module and Spring bootstrap |
Vue package, router plugin, and application backend |
Navigation |
Server-rendered route fragments enhanced by HTMX |
Client-side Vue Router routes |
Shell |
Built-in shell or packaged application HTML body |
Application-owned Vue component |
Custom pages |
Packaged HTML selected by exact logical type |
Vue components selected by exact logical type |
Domain interaction |
Shared Causeway components and rich GraphQL |
Shared Causeway components and rich GraphQL |
Start with HTMX if you want server-owned routing and declarative HTML pages. Start with Vue if your application already owns a Vue frontend or needs Vue composition around domain components. Neither choice requires replacing the domain model, and neither implies complete Wicket feature parity. The supported boundaries are described in the relevant guide.
Architecture
Application host
HTMX shell + route fragments OR Vue shell + route components
|
Causeway custom elements
contexts, menus, properties, actions,
layouts, collections, results
|
rich GraphQL API
|
Causeway domain model
visibility, validation, actions, persistence
The foundation supplies framework-neutral ECMAScript modules and custom elements such as <cw-object-context>, <cw-property>, and <cw-action>.
It does not depend on HTMX or Vue.
Hosts own route selection, history, shell stability, and lifecycle; components own GraphQL projections, semantic state, and interaction results.
Optional toolkit adapters change eligible presentation without becoming application-facing domain APIs.