3. The method of claim 1 wherein the different template is a template for a different product.
1. A computer-implemented method comprising receiving, by one or more processors, a user request to initiate a product design session using a selected template, the selected template assembled using a first set of a plurality of component elements, wherein each of the plurality of component elements are associated with a unique component element identifier, the first set of the plurality of component elements including at least a layout component element specifying at least a size and a positioning of all containers in the respective layout component element, and at least one of a design component element, an image component element, a text group component element, a font scheme component element, and/or a color scheme component element; in response to the user request, associating, by one or more processors, a product description identifier with the unique component element identifiers of the first set of the plurality of component elements required to assemble the selected template; displaying, by one or more processors, the selected template to the user; providing, by one or more processors, one or more tools allowing the user to change at least one component element of the displayed template with a different component element associated with a different component element identifier; in response to each user change of the at least one component element of the displayed template, associating, by one or more processors, the different component element identifier of the different component element with the product description identifier and updating the displayed template to reflect the change; using, by one or more processors, at least one or more of the component clement identifiers associated with the product description identifier as component element identifiers of a different template assembled using a second set of a plurality of component elements, the second set of the plurality of component elements comprising at least one different component element than the first selected template, and displaying, by one or more processors, the different template to the user.