1. A computer-implemented method comprising: receiving, from a server system, a workspace definition comprising (i) a plurality of application identifiers each specifying an executable file of an application and (ii) multiple participants each referring to a respective workspace participant, the workspace definition defining a workspace which integrates information and applications that relate to a particular task, the applications of the workspace identified by the application identifiers; for each application identifier, executing within an application container a respective application referred to by the application identifier, the application container being a runtime environment configured to provide, to applications executing within the application container, services for intra-workspace communication between applications of a workspace and services for extra-workspace communication with other application containers that have received the workspace definition, the application container having a user interface, and where execution of the respective application in the application container creates a respective visual representation in the user interface; determining by a first respective application executing within the application container a role for a current participant and selecting a set of application features to enable for the first application based on the role; modifying, based on user input from the current participant, the workspace definition; and synchronizing the modified workspace definition with the server system, the server system configured to distribute the synchronized modified workspace definition to a remainder of the workspace participants.