In this paper, a text-to-speech system for Dutch, called Spraakmaker, is described. It is based on a flexible underlying framework which has been devised for building text-to-speech systems. This framework is called Speech Maker. Central to this framework is a multi-level, synchronized data structure, based on the work of Hertz, Kadin and Karplus (1985), which we call grid . Its purpose is to contain all linguistic information relevant to the text-to-speech conversion process. First of all, we explain why we chose the grid data structure as the core of our framework. Then we describe how the general framework Speech Maker is constructed: apart from the grid data structure, a user interface to interact with the structure and a rule formalism to algorithmically manipulate it are also available. Finally, we discuss our implementation for the Dutch language, Spraakmaker, explaining which linguistic units we chose to represent in the grid, and how eight major linguistic modules operate on the grid in terms of these units.