1. A method, comprising: storing, at a server, a plurality of variants, wherein each variant of the plurality of variants describes at least one of a hardware architecture and platform library; receiving, at the server, an indication of a usage pattern of a particular function performed by a particular application on a client device; receiving, at the server, a request from the client device to download a binary software application, the request including a reference to a first variant of the plurality of variants, wherein the first variant identifies at least one of a first hardware architecture and a first platform library associated with the client device; responsive to receiving the request from the client device, creating the binary software application corresponding to the first variant and the usage pattern, the creating comprising compiling source code to generate the binary software application; and providing, from the server, the created binary software application to the client device.