A method of editing a media project that is at least partially stored on a client, the media project comprising: one or more media assets; and one or more composition assets (104, 106), wherein a composition asset references media assets forming part of a composition; the method comprising: enabling a user of an application (210, 212, 214) running on the client to use the application to edit the media project; enabling the user to select a synchronization mode for the media project that specifies whether: composition assets are to be stored on the client and not on a server, or stored on the server and not the client, or stored on both the client and on the server; and media assets are to be stored on the client and not on the server, or stored on the server and not the client, or stored on both the client and on the server; storing metadata for the synchronized media project on the client, the metadata comprising a compositional reference map, wherein the compositional reference map refers to: a set of asset records, each asset record referring to a location and a synchronization state for a corresponding asset; and the synchronization mode; and providing a project synchronization service on the client, wherein the media project stored on the client and a copy of the media project stored on the server are synchronized with each other in accordance with the designated synchronization mode, the synchronization service issuing data and notifications to the server and receiving data and notifications from the server for maintaining synchrony between assets of the synchronized media project stored on the client and assets of the synchronized media project stored on the server. one or more media assets; and one or more composition assets (104, 106), wherein a composition asset references media assets forming part of a composition; the method comprising: enabling a user of an application (210, 212, 214) running on the client to use the application to edit the media project; enabling the user to select a synchronization mode for the media project that specifies whether: composition assets are to be stored on the client and not on a server, or stored on the server and not the client, or stored on both the client and on the server; and media assets are to be stored on the client and not on the server, or stored on the server and not the client, or stored on both the client and on the server; storing metadata for the synchronized media project on the client, the metadata comprising a compositional reference map, wherein the compositional reference map refers to: a set of asset records, each asset record referring to a location and a synchronization state for a corresponding asset; and the synchronization mode; and providing a project synchronization service on the client, wherein the media project stored on the client and a copy of the media project stored on the server are synchronized with each other in accordance with the designated synchronization mode, the synchronization service issuing data and notifications to the server and receiving data and notifications from the server for maintaining synchrony between assets of the synchronized media project stored on the client and assets of the synchronized media project stored on the server. enabling a user of an application (210, 212, 214) running on the client to use the application to edit the media project; enabling the user to select a synchronization mode for the media project that specifies whether: composition assets are to be stored on the client and not on a server, or stored on the server and not the client, or stored on both the client and on the server; and media assets are to be stored on the client and not on the server, or stored on the server and not the client, or stored on both the client and on the server; composition assets are to be stored on the client and not on a server, or stored on the server and not the client, or stored on both the client and on the server; and media assets are to be stored on the client and not on the server, or stored on the server and not the client, or stored on both the client and on the server; storing metadata for the synchronized media project on the client, the metadata comprising a compositional reference map, wherein the compositional reference map refers to: a set of asset records, each asset record referring to a location and a synchronization state for a corresponding asset; and the synchronization mode; and a set of asset records, each asset record referring to a location and a synchronization state for a corresponding asset; and the synchronization mode; and providing a project synchronization service on the client, wherein the media project stored on the client and a copy of the media project stored on the server are synchronized with each other in accordance with the designated synchronization mode, the synchronization service issuing data and notifications to the server and receiving data and notifications from the server for maintaining synchrony between assets of the synchronized media project stored on the client and assets of the synchronized media project stored on the server.