1. A machine-readable non-transitory storage medium having instructions therein, which when executed by a machine, cause the machine to perform a method, the method comprising: providing a package of components for installing an application to different types of devices, wherein a collection of attributes characterize properties of the types of devices, each component associated with a set of component traits, each component trait indicating an attribute value for one of the attributes, each type of devices characterized by a corresponding set of device traits, each device trait indicating an attribute value for one of the attributes, the package of components including a particular group of components; identifying a subset of the package of components for an application variant to install the application to a particular one of the different types of devices, the particular type of devices characterized by a particular set of device traits, wherein one component within the particular group of components is required to install the application to each of the different types of devices, wherein the subset of components include one component selected from the particular group of components to best match the particular set of device traits of the particular type of devices within the particular group of components; storing the application variant including the subset of components in a data store, the application variant indexed by the particular set of device traits in the data store; and sending the application variant to a device from the data store, the device characterized by the particular set of device traits.