1. A software development and distribution platform for preserving associations between products and components, hosted on a server and comprising: a memory; a library of configurable user interface components stored on the memory and a library of configurable functional components stored on the memory; a management services module stored on the memory and configured to modify said configurable user interface components and said configurable functional components to create multiple versions of said configurable user interface components and configurable functional components; wherein the management services module is configured to version each modified configurable user interface component and each modified configurable functional component with a unique version number; wherein each versioned configurable user interface component and each versioned configurable functional component is stored on the memory; wherein a product is immutably associated with one or more of the versioned user interface components and versioned configurable functional components; and said platform configured to provide, in response to client requests through one or more endpoints, said product and the associated one or more versioned configurable user interface components and functional components.