Abstract: The design space of collaborative applications is characterized using the notion of generalized multiuser editing. Generalized multiuser editing allows users to view interactive applications as editors of data structures. The model includes several collaboration functions, which allow users to collaboratively edit application data structures. These functions include coupling, concurrency control, access control, and multiuser undo/redo. Coupling allows the users to share editing changes, access control and concurrency control prevent them from making unauthorized and inconsistent changes, respectively, and multiuser undo/redo allows them to collaboratively undo/redo changes. These functions must be performed flexibly to accommodate different applications, users, phases of collaboration, and bandwidths of the communication links. In this paper, we characterize the design space of each of these functions, describing some of the principles, issues, alternate approaches, and tradeoffs related to the design of these functions.