Domino Brix is a lightweight MVP framework for DominoKit apps. It combines routing, presenters, slots, events, startup tasks, and security into a cohesive runtime with generated presenters, views, module descriptors, and initializers.
Use Domino CLI docs for the complete command reference. To get started quickly, create a Brix sample app first and then add modules as your project grows.
Create the sample app:
dominokit gen app -n sample -g org.dominokit.samples -t brix
Create a module inside that project:
dominokit gen module -n dashboard -p Layout -sp layout
Add the runtime and processor to your project (processor as provided for client builds):
<!-- pom.xml -->
<dependency>
<groupId>org.dominokit</groupId>
<artifactId>domino-brix-client</artifactId>
<version>${brix.version}</version>
</dependency>
<dependency>
<groupId>org.dominokit</groupId>
<artifactId>domino-brix-processor</artifactId>
<version>${brix.version}</version>
<scope>provided</scope>
</dependency>
Initialize configuration, register generated modules, then start the router and startup tasks. The single initModules(...) call registers split modules and initializes eager components.
import org.dominokit.brix.api.BrixComponentInitializer_ServiceLoader;
import org.dominokit.brix.api.BrixModuleDescriptor_ServiceLoader;
Map<String, String> config = Map.of("apiBase", "/api");
Brix.get().init(config);
Brix.get().initModules(
BrixModuleDescriptor_ServiceLoader.load(),
BrixComponentInitializer_ServiceLoader.load());
Brix.get().start(Set.of(/* startup tasks */), () -> DomGlobal.console.info("Ready"));
// navigate
Brix.get().router().pushToken("dashboard");