A computer-implemented method for memory conserving versioning of an electronic document, comprising: receiving, at a server, an update request for the electronic document from a client (104a, 104b, 104c, 104n), the update request comprising client edits to the electronic document; analyzing, by the server, a plurality of server versioning factors for determining, whether to save the client edits as a new version of the electronic document, wherein the plurality of server versioning factors includes a client version request flag versioning factor, the client version request flag versioning factor being based on a determination whether the update request includes a flag that requests saving the client edits as a new version of the electronic document; generating, by the server, a versioning score based on derived values of the plurality of server versioning factors and comparing the versioning score against a versioning threshold score; in response to a determination that the versioning score meets or exceeds the versioning threshold score: generating a new version identifier for the electronic document; and saving the electronic document with the client edits to a storage repository using the new version identifier, thereby creating a new version of the electronic document distinguished by the new version identifier; and in response to a determination that the versioning score does not meet or exceed the versioning threshold, saving the client edits to a current version of the electronic document. receiving, at a server, an update request for the electronic document from a client (104a, 104b, 104c, 104n), the update request comprising client edits to the electronic document; analyzing, by the server, a plurality of server versioning factors for determining, whether to save the client edits as a new version of the electronic document, wherein the plurality of server versioning factors includes a client version request flag versioning factor, the client version request flag versioning factor being based on a determination whether the update request includes a flag that requests saving the client edits as a new version of the electronic document; generating, by the server, a versioning score based on derived values of the plurality of server versioning factors and comparing the versioning score against a versioning threshold score; in response to a determination that the versioning score meets or exceeds the versioning threshold score: generating a new version identifier for the electronic document; and saving the electronic document with the client edits to a storage repository using the new version identifier, thereby creating a new version of the electronic document distinguished by the new version identifier; and generating a new version identifier for the electronic document; and saving the electronic document with the client edits to a storage repository using the new version identifier, thereby creating a new version of the electronic document distinguished by the new version identifier; and in response to a determination that the versioning score does not meet or exceed the versioning threshold, saving the client edits to a current version of the electronic document.