Skip to content

The Challenge

DDD is the answer to sustainable enterprise software, for over 20 years. But implementation requires deep architectural knowledge, discipline across all layers, and consistent structures in every project.

This is costly, and that's exactly why it is used far too rarely.

The Answer: Jardis

Over the lifecycle, DDD is the more sustainable, more maintainable choice. It has been for over 20 years. The only valid counterargument has always been the high upfront effort. Jardis lowers exactly that, the rule-based implementation portion, without touching the lifecycle advantage.

Jardis is a visual DDD platform. You model your domain in the Designer: strategically (Bounded Contexts, glossary, Context Map) and tactically (Aggregates, Processes). One click on Build generates the complete hexagonal layer from it: entities, aggregates, commands, queries, events, repository pipeline, and API contracts.

The cut of the Bounded Contexts and the terms of your domain remain human thinking work: Jardis captures them, reconciles them with the tactical reality, and takes the rule-based implementation off your hands.

The build works additively: your custom code is never overwritten. Change it in the Designer, run the build, done.

ChangeWithout JardisWith Jardis
New field in an entityQuery, transform, DTO, validator, API spec — all manualAdd it in the Designer, run the build
New entity in the aggregateCreate dozens of files manually and keep them consistentDrag the table into the aggregate, run the build
Cardinality changesDeeply invasive changes across the entire pipelineToggle the edge cardinality in the Designer

With or Without Your Own Framework

Jardis doesn't force a web framework on you. For HTTP delivery, jardiscore/app ships a router, a PSR-15 pipeline and an envelope mapper out of the box — enough for a complete API. If you already run Laravel, Symfony or Slim, Jardis instead takes over the domain layer from the controller onward. Both paths satisfy the same envelope contract.

HTTP Request
  → jardiscore/app  (router · PSR-15 pipeline · envelope mapper)
    │  — or Laravel / Symfony / Slim / your own front controller
    ┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄  Jardis domain layer  ┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
    → Domain → Bounded Context → Query (reading) · Process (writing) → DomainResponse

No Lock-in

The generated code is standard PHP. At runtime, you can use jardiscore/kernel or implement your own kernel. All interfaces follow PSR standards. If you decide against Jardis, your code keeps running. Your domain definitions are preserved.

Framework freedom: Laravel today, Symfony tomorrow, something custom the day after. Jardis code runs everywhere.

Jardis + AI

AI writes code faster than ever before. But in enterprise applications with dozens of files, any room for interpretation becomes a risk. Jardis eliminates this structurally:

  • No hallucinations — the platform code defines what exists. The AI doesn't have to guess.
  • No inconsistency — the architecture enforces one way. Every session, every developer, the same result.
  • No rework — skillsets and quality gates enforce standards automatically.