SQL, RegExp, Gradle — what do they have in common? All of them represent an example of using domain-specific languages, or DSL. Languages of this type aim to solve a specific problem, such as database querying, finding matches in the text, or build process description. Kotlin language offers a large amount of features for building your own domain-specific language. In this article we’ll discover the developer’s toolkit and implement a DSL for a real-world domain.