Warning
🚧 Prerelease Software — DomainLang is in active development and has not reached v1.0 yet. The language syntax and tooling may change. We welcome feedback and contributions—see the roadmap for planned features.
A small DSL for Domain-Driven Design (DDD) architecture models, with first-class IDE support.
Use DomainLang to keep domains, bounded contexts, ownership, terminology, and context maps close to the codebase (and easy to review in pull requests).
- Install the VS Code extension: https://marketplace.visualstudio.com/items?itemName=DomainLang.vscode-domainlang
- Create a
.dlangfile and start modeling - Read the documentation: https://domainlang.net/guide/getting-started
Classification CoreDomain
Team SalesTeam
Domain Sales {
description: "Revenue generation and customer acquisition"
vision: "Make it easy to buy"
}
bc Orders for Sales as CoreDomain by SalesTeam {
description: "Order lifecycle and orchestration"
terminology {
term Order: "A customer's request to purchase"
}
}
ContextMap SalesLandscape {
contains Orders
}- Architects and tech leads who want lightweight, reviewable DDD models
- Teams doing DDD who need a shared ubiquitous language in the repo
- Developers who want IDE feedback while evolving architecture
- A DDD-aligned language for architecture models
- VS Code support (syntax highlighting, completion, hover, go-to-definition)
- Validation to catch common modeling issues early
- Model Query SDK for analysis and automation
Full documentation is available at https://domainlang.net:
- Getting Started — Build your first model
- Language Reference — Complete syntax and semantics
- Quick Reference — Syntax cheat sheet
- Examples — Real-world model examples
Development uses Node.js 20+ (Volta is configured).
cd dsl/domain-lang
npm install
npm run langium:generate
npm run build
npm testSee dsl/domain-lang/README.md for workspace commands and package layout.
Ideas, bug reports, and pull requests are welcome!
- 💬 Discussions — Ask questions and share ideas
- 🐛 Issues — Report bugs or propose features
- 📖 Contributing Guide — Get started contributing
Before submitting code, run npm test and npm run lint from dsl/domain-lang/.
Apache 2.0 (see LICENSE)
This project is sponsored by thinkability
