1. A method of storing a synchronized media project, the method comprising: on a client, storing metadata for the synchronized media project, 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 a synchronization mode; on the client, providing a bidirectional project synchronization service, the synchronization service issuing data and notifications to a 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; and enabling a user of an application hosted by the client to select the synchronization mode for the synchronized media project, the synchronization mode specifying whether: the bidirectional project synchronization service maintains synchrony between client and server copies of one or more composition assets of the synchronized media project; and the bidirectional project synchronization service maintains synchrony between client and server copies of media assets of the synchronized media project.