1. Domino Brix
  2. Getting started

Quick start

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.

Scaffold a sample app with Domino CLI

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

		

Dependencies

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>

		

Bootstrap Brix

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");

		
  • BrixSlots registers body/popup/no-content slots for you.
  • initModules(...) registers generated split descriptors and initializes the eager component services before navigation starts.
  • RouterManager comes from generated routing providers; push tokens to navigate.
  • Startup tasks run in order before the ready callback fires.

Modules

  • domino-brix-client: runtime router, slots, events, security, startup tasks, presenter base classes.
  • domino-brix-processor: generates presenters, views, handlers, slots, routing providers, module descriptors, and component initializers.
  • domino-brix-shared: shared DTOs/events for your app or modules.

We are a group of passionate people who love what we do

Donate & Support Us