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, by a server, 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 class value for one of the attributes, and each type of device characterized by a corresponding set of device traits, each device trait indicating an attribute class value for one of the attributes; identifying a particular variant of a component within the package of components to install a variant of the application to a particular type of device, wherein identifying the particular variant includes, for each of a plurality of variants of the component; comparing the attribute class value for each component trait and the corresponding attribute class value for each corresponding device trait of the particular type of device; assigning a matching value between each component trait and the corresponding device trait of the particular type of device based on the comparison of class values; and determining a multiple trait matching score between the variant of the component and the particular type of device based on the assigned matching values, and determining based on the multiple trait matching scores, the particular variant amongst the plurality of variants to best match the particular type of device; storing the application variant including the particular variant of the component in a data store, the application variant indexed by device traits in the data store; and sending the application variant to a device from the data store as part of an installation process initiated by the server in response to receiving a request by the device to install the application on the device, wherein the device includes one or more device traits associated with the application variant.