This paper describes DTC (Documents, Transformations and Components), our approach to the XML-based development of content-intensive applications. According to this approach, the contents of an application and other customizable features (e.g. the properties of its user interface) are represented in terms of XML documents. In DTC, the software of the application is organized in terms of reusable components capable of processing specific markup languages. In addition, we use document transformations to fit components and documents together, because they can be reused from pre-existing repositories. In this paper, we describe the DTC approach, illustrating its application in a case study. Because DTC encourages the explicit separation between the description of the application’s variability (contents and other customizable features) and the application’s operational support, the approach improves maintainability and reuse at both the information and software levels.