This article showcases and explains the use of domain-specific languages to express software architectures. Specifically, I report about project experiences where we created system-specific textual DSLs that were used to describe the system in a tool-processable way, to reason about the system, and to generate the majority of technical implementation code. The article starts off with a quick look at software architecture today and introduces the concept of architecture DSLs. Then follows an extensive example that shows an example language and how it evolved together with the architecture it describes. The next major section looks at the benefits of the approach, discusses why we used textual languages as opposed to graphical ones, and discusses issues around tooling, model validation, code generation, and the importance of standard modeling languages. The article concludes by taking a brief look at some of the challenges of the approach.