A method comprising: receiving, by a supervisor component executing at a computing device, a request to execute particular functionality of an application, the application comprising separate installable sub-packages for separate sets of functionality; responsive to determining that an application container for maintaining the installable sub-packages of the application is not allocated in memory of the computing device, retrieving, by the supervisor component, an application definition from a first remote computing system (142A-142C), wherein the application definition defines a plurality of mappings between the installable sub-packages of the application and user-specified identifiers; responsive to allocating the application container in the memory of the computing device, initiating, by the supervisor component and based at least in part on a user-specified identifier of the request, the particular functionality of the application; responsive to determining, by the application container executing at the computing device, based at least in part on the application definition and the user-specified identifier, that an installable sub-package (146, 104A) for the particular functionality is not stored at the computing device, retrieving, by the application container, the installable sub-package that includes a plurality of executable components from a second remote computing system (142A-142C) that stores the separate installable sub-packages of the application; installing the installable sub-package on the computing device; and executing, by the application container and using the plurality of executable components, the particular functionality of the application. receiving, by a supervisor component executing at a computing device, a request to execute particular functionality of an application, the application comprising separate installable sub-packages for separate sets of functionality; responsive to determining that an application container for maintaining the installable sub-packages of the application is not allocated in memory of the computing device, retrieving, by the supervisor component, an application definition from a first remote computing system (142A-142C), wherein the application definition defines a plurality of mappings between the installable sub-packages of the application and user-specified identifiers; responsive to allocating the application container in the memory of the computing device, initiating, by the supervisor component and based at least in part on a user-specified identifier of the request, the particular functionality of the application; responsive to determining, by the application container executing at the computing device, based at least in part on the application definition and the user-specified identifier, that an installable sub-package (146, 104A) for the particular functionality is not stored at the computing device, retrieving, by the application container, the installable sub-package that includes a plurality of executable components from a second remote computing system (142A-142C) that stores the separate installable sub-packages of the application; installing the installable sub-package on the computing device; and executing, by the application container and using the plurality of executable components, the particular functionality of the application.