https://github.com/domainlang/domainlang
DomainLang DSL and LSP server
https://github.com/domainlang/domainlang
cli ddd domain-driven-design dsl langium vscode
Last synced: 3 months ago
JSON representation
DomainLang DSL and LSP server
- Host: GitHub
- URL: https://github.com/domainlang/domainlang
- Owner: DomainLang
- License: apache-2.0
- Created: 2026-01-24T23:21:41.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2026-01-25T21:26:32.000Z (6 months ago)
- Last Synced: 2026-01-26T11:13:15.002Z (6 months ago)
- Topics: cli, ddd, domain-driven-design, dsl, langium, vscode
- Language: TypeScript
- Homepage: http://domainlang.net/
- Size: 7 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README

# A DSL for Domain Driven Design
[](https://github.com/DomainLang/DomainLang/actions/workflows/ci-cd.yml)
[](https://sonarcloud.io/summary/new_code?id=DomainLang_DomainLang)[](https://sonarcloud.io/summary/new_code?id=DomainLang_DomainLang)[](https://sonarcloud.io/summary/new_code?id=DomainLang_DomainLang)[](https://sonarcloud.io/summary/new_code?id=DomainLang_DomainLang)
[](https://marketplace.visualstudio.com/items?itemName=DomainLang.vscode-domainlang)
> [!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](https://domainlang.net/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).

## Quick Start
1. Install the VS Code extension:
2. Create a `.dlang` file and start modeling
3. Read the documentation:
```dlang
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
}
```
## Who this is for
- 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
## What you get
- 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
## Documentation
Full documentation is available at ****:
- [Getting Started](https://domainlang.net/guide/getting-started) โ Build your first model
- [Language Reference](https://domainlang.net/reference/language) โ Complete syntax and semantics
- [Quick Reference](https://domainlang.net/reference/quick-reference) โ Syntax cheat sheet
- [Examples](https://domainlang.net/examples/) โ Real-world model examples
## Build from Source
Development uses Node.js 20+ (Volta is configured).
```bash
cd dsl/domain-lang
npm install
npm run langium:generate
npm run build
npm test
```
See [dsl/domain-lang/README.md](dsl/domain-lang/README.md) for workspace commands and package layout.
## Contributing
Ideas, bug reports, and pull requests are welcome!
- ๐ฌ [Discussions](https://github.com/DomainLang/DomainLang/discussions) โ Ask questions and share ideas
- ๐ [Issues](https://github.com/DomainLang/DomainLang/issues) โ Report bugs or propose features
- ๐ [Contributing Guide](https://domainlang.net/guide/getting-started) โ Get started contributing
Before submitting code, run `npm test` and `npm run lint` from `dsl/domain-lang/`.
## License
Apache 2.0 (see LICENSE)
---

This project is sponsored by [thinkability](https://thinkability.dk)